Loading .dockerignore 0 → 100644 +4 −0 Original line number Diff line number Diff line node_modules prisma/dev.db dist .env No newline at end of file .gitignore +2 −1 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ node_modules .env prisma/dev.db dist No newline at end of file Dockerfile 0 → 100644 +64 −0 Original line number Diff line number Diff line FROM node:20-alpine AS base FROM base as dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ USER node RUN npm install --include=dev FROM base as dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ USER node RUN npm install --omit=dev # # === BUILDER === # FROM base as build RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app COPY --from=dev_dep /home/node/app/ ./ COPY --chown=node:node . . RUN npx prisma generate RUN npm run build # # === RUNNER === # FROM base as run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start.sh ./ COPY --from=build /home/node/app/prisma ./prisma COPY --from=build /home/node/app/dist ./dist # --- finalize --- RUN npx prisma generate # set runtime env variables ENV PORT 3000 ENV NODE_ENV production ENV DATABASE_URL file:/home/node/app/data.db VOLUME /home/node/app/data.db EXPOSE 3000 ENTRYPOINT [ "/bin/sh" ] CMD [ "./docker-start.sh" ] No newline at end of file docker-start.sh 0 → 100644 +7 −0 Original line number Diff line number Diff line #!/bin/sh # This script runs when the docker image starts # It just forces all migrations to run and then starts lol npx prisma migrate deploy npm run start No newline at end of file Loading
.dockerignore 0 → 100644 +4 −0 Original line number Diff line number Diff line node_modules prisma/dev.db dist .env No newline at end of file
.gitignore +2 −1 Original line number Diff line number Diff line Loading @@ -3,3 +3,4 @@ node_modules .env prisma/dev.db dist No newline at end of file
Dockerfile 0 → 100644 +64 −0 Original line number Diff line number Diff line FROM node:20-alpine AS base FROM base as dev_dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ USER node RUN npm install --include=dev FROM base as dep RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app # --- dependencies --- COPY --chown=node:node package*.json ./ USER node RUN npm install --omit=dev # # === BUILDER === # FROM base as build RUN mkdir -p /home/node/app/node_modules && chown -R node:node /home/node/app WORKDIR /home/node/app COPY --from=dev_dep /home/node/app/ ./ COPY --chown=node:node . . RUN npx prisma generate RUN npm run build # # === RUNNER === # FROM base as run WORKDIR /home/node/app COPY --from=dep /home/node/app/ ./ COPY package*.json docker-start.sh ./ COPY --from=build /home/node/app/prisma ./prisma COPY --from=build /home/node/app/dist ./dist # --- finalize --- RUN npx prisma generate # set runtime env variables ENV PORT 3000 ENV NODE_ENV production ENV DATABASE_URL file:/home/node/app/data.db VOLUME /home/node/app/data.db EXPOSE 3000 ENTRYPOINT [ "/bin/sh" ] CMD [ "./docker-start.sh" ] No newline at end of file
docker-start.sh 0 → 100644 +7 −0 Original line number Diff line number Diff line #!/bin/sh # This script runs when the docker image starts # It just forces all migrations to run and then starts lol npx prisma migrate deploy npm run start No newline at end of file