From 90ce3670239c5392bf658f5d35194702143bc511 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 19 May 2025 16:54:50 +0200 Subject: [PATCH 1/3] chore: prepare docker container for prisma database --- .dockerignore | 5 +++++ Dockerfile | 4 +++- entrypoint.sh | 10 ++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 entrypoint.sh diff --git a/.dockerignore b/.dockerignore index f74c781..58abc7e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,7 @@ .next node_modules +prisma/*.db* +data +README.md +*.env* +.yarn diff --git a/Dockerfile b/Dockerfile index cb129b3..ab7258b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,6 +22,8 @@ FROM gcr.io/distroless/nodejs22-debian12:nonroot@sha256:595dcd85af33b16450868993 WORKDIR /app +RUN yarn add prisma -D + ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 @@ -36,4 +38,4 @@ LABEL org.opencontainers.image.description="A web application for managing meetu EXPOSE 3000 ENV HOSTNAME="0.0.0.0" -CMD ["server.js"] +CMD ["/bin/ash", "entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..fd34867 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +echo "Running start script with user $(whoami) and NODE_ENV $NODE_ENV" +if [ "$NODE_ENV" == "production" ]; then + if [ -d "prisma/migrations" ]; then + echo "Running Prisma migrations" + npx prisma migrate deploy + fi +fi +exec node server.js From 2f320e924e812d90810bc480aa1bf1162ca14a53 Mon Sep 17 00:00:00 2001 From: dominik Date: Fri, 16 May 2025 07:16:15 +0000 Subject: [PATCH 2/3] chore: use alpine runner container Use nodejs alpine as the container image to run the app in. Also adds a shell into the container. Fixes the problem with prisma not starting in the container because it was compiled for a different version of openssl 3.3.x --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index cb129b3..8afa9ce 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,7 +18,7 @@ COPY . . RUN yarn build # ----- Runner ----- -FROM gcr.io/distroless/nodejs22-debian12:nonroot@sha256:595dcd85af33b16450868993ec48992c82d90a692fb0d5c6f435bca16edb85d6 AS runner +FROM base AS runner WORKDIR /app From 904547b50ff6b9e37176918c94ef55ccc3abef74 Mon Sep 17 00:00:00 2001 From: Dominik Stahl Date: Mon, 19 May 2025 16:54:50 +0200 Subject: [PATCH 3/3] chore: prepare docker container for prisma database --- .dockerignore | 5 +++++ Dockerfile | 4 +++- entrypoint.sh | 10 ++++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100755 entrypoint.sh diff --git a/.dockerignore b/.dockerignore index f74c781..58abc7e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,7 @@ .next node_modules +prisma/*.db* +data +README.md +*.env* +.yarn diff --git a/Dockerfile b/Dockerfile index 8afa9ce..5ffe24f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -22,6 +22,8 @@ FROM base AS runner WORKDIR /app +RUN yarn add prisma -D + ENV NODE_ENV=production ENV NEXT_TELEMETRY_DISABLED=1 @@ -36,4 +38,4 @@ LABEL org.opencontainers.image.description="A web application for managing meetu EXPOSE 3000 ENV HOSTNAME="0.0.0.0" -CMD ["server.js"] +CMD ["/bin/ash", "entrypoint.sh"] diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100755 index 0000000..fd34867 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +echo "Running start script with user $(whoami) and NODE_ENV $NODE_ENV" +if [ "$NODE_ENV" == "production" ]; then + if [ -d "prisma/migrations" ]; then + echo "Running Prisma migrations" + npx prisma migrate deploy + fi +fi +exec node server.js