Features: 1) Add Dockerfile for supervisor service; 2) Update docker-compose.yml to include supervisor service;
Fixes: 1) No fixes applied; Extra: 1) Supervisor service configured with environment variables and custom start script; 2) Uses multi-stage build for optimized runtime; 3) Sets up non-root user for security; 4) Exposes port 7777; 5) Depends on app service; 6) Uses default logging config.
This commit is contained in:
parent
6e37044e30
commit
fb84f1f89b
2 changed files with 53 additions and 0 deletions
38
Dockerfiles/supervisor.Dockerfile
Normal file
38
Dockerfiles/supervisor.Dockerfile
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# syntax=docker/dockerfile:1
|
||||||
|
FROM node:22-bookworm-slim AS build
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ARG EVIBES_BASE_DOMAIN
|
||||||
|
ARG EVIBES_PROJECT_NAME
|
||||||
|
ENV EVIBES_BASE_DOMAIN=$EVIBES_BASE_DOMAIN
|
||||||
|
ENV EVIBES_PROJECT_NAME=$EVIBES_PROJECT_NAME
|
||||||
|
|
||||||
|
COPY ./supervisor/package.json ./supervisor/package-lock.json ./
|
||||||
|
RUN npm ci --include=optional
|
||||||
|
|
||||||
|
COPY ./supervisor ./
|
||||||
|
RUN npm run build
|
||||||
|
|
||||||
|
FROM node:22-bookworm-slim AS runtime
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
ENV HOST=0.0.0.0
|
||||||
|
ENV PORT=7777
|
||||||
|
|
||||||
|
RUN apt-get update \
|
||||||
|
&& apt-get install -y --no-install-recommends curl \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
RUN addgroup --system --gid 1001 nodeapp \
|
||||||
|
&& adduser --system --uid 1001 --ingroup nodeapp --home /home/nodeapp nodeapp
|
||||||
|
USER nodeapp
|
||||||
|
|
||||||
|
COPY --from=build /app/.output/ ./
|
||||||
|
|
||||||
|
RUN install -d -m 0755 -o nodeapp -g nodeapp /home/nodeapp \
|
||||||
|
&& printf '#!/bin/sh\nif [ \"$DEBUG\" = \"1\" ]; then export NODE_ENV=development; else export NODE_ENV=production; fi\nexec node /app/server/index.mjs\n' > /home/nodeapp/start.sh \
|
||||||
|
&& chown nodeapp:nodeapp /home/nodeapp/start.sh \
|
||||||
|
&& chmod +x /home/nodeapp/start.sh
|
||||||
|
|
||||||
|
USER nodeapp
|
||||||
|
CMD ["sh", "/home/nodeapp/start.sh"]
|
||||||
|
|
@ -217,6 +217,21 @@ services:
|
||||||
- --web.config.file=/etc/prometheus/web.yml
|
- --web.config.file=/etc/prometheus/web.yml
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
|
|
||||||
|
# supervisor:
|
||||||
|
# container_name: supervisor
|
||||||
|
# build:
|
||||||
|
# context: .
|
||||||
|
# dockerfile: ./Dockerfiles/supervisor.Dockerfile
|
||||||
|
# restart: always
|
||||||
|
# env_file:
|
||||||
|
# - .env
|
||||||
|
# ports:
|
||||||
|
# - "7777:7777"
|
||||||
|
# depends_on:
|
||||||
|
# app:
|
||||||
|
# condition: service_started
|
||||||
|
# logging: *default-logging
|
||||||
|
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
postgres-data:
|
postgres-data:
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue