diff --git a/Dockerfile_ExpressAPI b/Dockerfile_ExpressAPI index 4701ead7f376605bb0f3acbe27fb224519486268..7651ef9bbbb7c5a2411eb742e9f8deb23204bbce 100644 --- a/Dockerfile_ExpressAPI +++ b/Dockerfile_ExpressAPI @@ -1,16 +1,39 @@ -FROM node:20-bullseye +ARG BUILD_WORKDIR=/dojo/ExpressAPI + +######################################################################## Build stage +FROM node:20-bullseye AS builder LABEL maintainer="Michaël Minelli <michael-jean.minelli@hesge.ch>" -LABEL Description="Express API for Dojo" +LABEL Description="Express API for Dojo - Build stage" + +ARG BUILD_WORKDIR -ADD ExpressAPI/ /dojo/ExpressAPI/ -ADD .env /dojo/ExpressAPI/.env +# Create app directory +ADD ExpressAPI/ ${BUILD_WORKDIR}/ -WORKDIR /dojo/ExpressAPI/ +WORKDIR ${BUILD_WORKDIR} +# Install app dependencies RUN npm install + +# Build app RUN npm run build + + +######################################################################## Run stage +FROM node:20-bullseye +LABEL maintainer="Michaël Minelli <michael-jean.minelli@hesge.ch>" +LABEL Description="Express API for Dojo - Run stage" + +ARG BUILD_WORKDIR + +COPY --from=builder ${BUILD_WORKDIR}/node_modules ./node_modules +COPY --from=builder ${BUILD_WORKDIR}/package*.json ./ +COPY --from=builder ${BUILD_WORKDIR}/dist ./dist +COPY --from=builder ${BUILD_WORKDIR}/prisma ./prisma +ADD .env ${BUILD_WORKDIR}/.env + EXPOSE 30992 -ENTRYPOINT [ "npm", "run", "start:prod" ] -#ENTRYPOINT ["tail", "-f", "/dev/null"] \ No newline at end of file +CMD [ "npm", "run", "start:migrate:prod" ] +#ENTRYPOINT ["tail", "-f", "/dev/null"]