From e7824de7e84adf3ab25214e759f5184688ac51fc Mon Sep 17 00:00:00 2001 From: Ketan Padegaonkar Date: Tue, 11 Jun 2024 18:42:01 +0530 Subject: [PATCH] Add support for docker & docker compose --- .dockerignore | 2 ++ docker/Dockerfile | 8 +++++++ docker/docker-compose.yml | 47 +++++++++++++++++++++++++++++++++++++++ docker/mqtt.sh | 10 +++++++++ docker/webapp.sh | 10 +++++++++ 5 files changed, 77 insertions(+) create mode 100644 .dockerignore create mode 100644 docker/Dockerfile create mode 100644 docker/docker-compose.yml create mode 100755 docker/mqtt.sh create mode 100755 docker/webapp.sh diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..6ed48a9 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,2 @@ +.env +node_modules diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..e5d35de --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,8 @@ +FROM node:lts-alpine + +COPY --from=ghcr.io/ufoscout/docker-compose-wait:latest /wait /wait + +ADD ./ /app +WORKDIR /app +RUN npm install +EXPOSE 8080 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml new file mode 100644 index 0000000..f4417ca --- /dev/null +++ b/docker/docker-compose.yml @@ -0,0 +1,47 @@ +services: + meshtastic-mqtt: + container_name: meshtastic-mqtt + depends_on: + - mariadb + build: + context: .. + dockerfile: docker/Dockerfile + command: /app/docker/mqtt.sh + links: + - mariadb + env_file: + - ../.env + + meshmap: + container_name: meshmap + depends_on: + - mariadb + build: + context: .. + dockerfile: docker/Dockerfile + command: /app/docker/webapp.sh + ports: + - 8080:8080/tcp + links: + - mariadb + env_file: + - ../.env + + mariadb: + container_name: mariadb + image: bitnami/mariadb + ports: + - 3306:3306/tcp + env_file: + - ../.env + volumes: + - mariadb_data:/bitnami/mariadb + healthcheck: + test: ['CMD', '/opt/bitnami/scripts/mariadb/healthcheck.sh'] + interval: 15s + timeout: 5s + retries: 6 + start_interval: 5s + +volumes: + mariadb_data: diff --git a/docker/mqtt.sh b/docker/mqtt.sh new file mode 100755 index 0000000..34eb1bb --- /dev/null +++ b/docker/mqtt.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "Waiting for mysql" +/wait || exit 111 + +echo "Running migrations" +npx prisma migrate dev + +echo "Starting mqtt listener" +exec node src/mqtt.js ${MESHMAP_MQTT_OPTS} diff --git a/docker/webapp.sh b/docker/webapp.sh new file mode 100755 index 0000000..87af090 --- /dev/null +++ b/docker/webapp.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "Waiting for mysql" +/wait || exit 111 + +echo "Running migrations" +npx prisma migrate dev + +echo "Starting webapp" +exec node src/index.js