From f1f514dff76f3904f66cee0aab11de982a893a56 Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Sun, 11 Aug 2024 15:53:56 +0200 Subject: [PATCH] chore: move docker entrypoint to seperate script --- Dockerfile | 13 ++++--------- scripts/docker-entrypoint.sh | 10 ++++++++++ 2 files changed, 14 insertions(+), 9 deletions(-) create mode 100644 scripts/docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 636d108d..5479c9ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -30,13 +30,10 @@ RUN npm run build && npm prune --production FROM node:20-alpine AS runner ENV NODE_ENV=docker -# Install Caddy RUN apk update --no-cache \ && apk upgrade --no-cache \ && apk add --no-cache curl caddy -COPY ./Caddyfile /etc/caddy/Caddyfile - WORKDIR /opt/app/frontend COPY --from=frontend-builder /opt/app/public ./public COPY --from=frontend-builder /opt/app/.next/standalone ./ @@ -49,15 +46,13 @@ COPY --from=backend-builder /opt/app/dist ./dist COPY --from=backend-builder /opt/app/prisma ./prisma COPY --from=backend-builder /opt/app/package.json ./ +COPY ./Caddyfile /etc/caddy/Caddyfile +COPY ./scripts/docker-entrypoint.sh /opt/app/docker-entrypoint.sh + WORKDIR /opt/app EXPOSE 3000 -# Health check remains unchanged HEALTHCHECK --interval=10s --timeout=3s CMD curl -f http://localhost:3000/api/health || exit 1 -# Application startup updated for Caddy -CMD cp -rn /tmp/img/* /opt/app/frontend/public/img && \ - caddy run --config /etc/caddy/Caddyfile 2> caddy.log & \ - PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & \ - cd backend && npm run prod \ No newline at end of file +CMD ["sh", "/opt/app/docker-entrypoint.sh"] \ No newline at end of file diff --git a/scripts/docker-entrypoint.sh b/scripts/docker-entrypoint.sh new file mode 100644 index 00000000..970265d8 --- /dev/null +++ b/scripts/docker-entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +# Start Caddy +caddy start --config /etc/caddy/Caddyfile & +# Run the frontend server +PORT=3333 HOSTNAME=0.0.0.0 node frontend/server.js & +# Run the backend server +cd backend && npm run prod +# Wait for all processes to finish +wait -n \ No newline at end of file