Quellcode durchsuchen

feat: add initial supervisor setup

Karol Sójko vor 2 Jahren
Ursprung
Commit
55de4319ed
6 geänderte Dateien mit 61 neuen und 2 gelöschten Zeilen
  1. 3 0
      .gitignore
  2. 29 0
      Dockerfile
  3. 7 2
      docker-compose.yml
  4. 11 0
      docker/docker-entrypoint.sh
  5. 11 0
      docker/supervisord.conf
  6. 0 0
      logs/.gitkeep

+ 3 - 0
.gitignore

@@ -20,3 +20,6 @@ packages/files/uploads/*
 
 
 data/*
 data/*
 !data/.gitkeep
 !data/.gitkeep
+
+logs/*
+!logs/.gitkeep

+ 29 - 0
Dockerfile

@@ -0,0 +1,29 @@
+FROM node:18.13.0-alpine
+
+RUN apk add --update \
+  bash \
+  curl \
+  py3-pip \
+  && rm -rf /var/cache/apk/*
+
+ENV NODE_ENV production
+
+RUN corepack enable
+
+RUN pip install --no-cache-dir --upgrade supervisor
+
+RUN mkdir -p /var/lib/server/logs
+
+COPY docker/supervisord.conf /etc/supervisord.conf
+
+COPY docker/docker-entrypoint.sh /usr/local/bin/
+
+COPY . /opt/server
+
+WORKDIR /opt/server
+
+RUN yarn install --immutable
+
+RUN yarn build
+
+ENTRYPOINT ["docker-entrypoint.sh"]

+ 7 - 2
docker-compose.yml

@@ -1,7 +1,12 @@
-version: '3.8'
 services:
 services:
+  server:
+    build: .
+    env_file: .env
+    volumes:
+      - ./logs:/var/lib/server/logs
+
   db:
   db:
-    image: mysql:5.6
+    image: mysql:8
     environment:
     environment:
       MYSQL_DATABASE: '${DB_DATABASE}'
       MYSQL_DATABASE: '${DB_DATABASE}'
       MYSQL_USER: '${DB_USERNAME}'
       MYSQL_USER: '${DB_USERNAME}'

+ 11 - 0
docker/docker-entrypoint.sh

@@ -0,0 +1,11 @@
+#!/bin/bash
+
+# Setup environment variables
+
+printenv | grep API_GATEWAY_ | sed 's/API_GATEWAY_//g' > /opt/server/packages/api-gateway/.env
+
+# Run supervisor
+
+supervisord -c /etc/supervisord.conf
+
+exec "$@"

+ 11 - 0
docker/supervisord.conf

@@ -0,0 +1,11 @@
+[supervisord]
+nodaemon=true
+logfile=/tmp/supervisord.log
+
+[program:api-gateway]
+directory=/opt/server
+command=yarn start:api-gateway
+autostart=true
+autorestart=true
+stdout_logfile=/var/lib/server/logs/api-gateway.log
+stderr_logfile=/var/lib/server/logs/api-gateway.err

+ 0 - 0
logs/.gitkeep