diff --git a/Dockerfile b/Dockerfile index 17774d8f..5be0adb1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -95,8 +95,6 @@ ENV BASE_URL= \ COPY --from=1 /usr/src/app /usr/src/app/ -RUN ls -l /usr/src/app - WORKDIR /usr/src/app EXPOSE 3000 diff --git a/packages/federated-identity-service/Dockerfile b/packages/federated-identity-service/Dockerfile index f0f871e0..d0cbf499 100644 --- a/packages/federated-identity-service/Dockerfile +++ b/packages/federated-identity-service/Dockerfile @@ -1,4 +1,45 @@ -FROM node:18 +# Base for final image +FROM debian:bookworm-slim as node-minimal + +RUN apt update && \ + apt -y dist-upgrade && \ + apt -y install nodejs && \ + apt autoremove -y && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* + +# Temporary image to build app +FROM debian:bookworm-slim as builder + +RUN apt update && \ + apt -y dist-upgrade && \ + apt -y install nodejs npm && \ + apt autoremove -y && \ + apt clean && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /usr/src/app + +# COPIES +COPY ./packages/federated-identity-service/server.mjs . +COPY ./packages/crypto ./packages/crypto +COPY ./packages/logger ./packages/logger +COPY ./packages/matrix-resolve ./packages/matrix-resolve +COPY ./packages/matrix-identity-server ./packages/matrix-identity-server +COPY ./packages/config-parser ./packages/config-parser +COPY ./packages/federated-identity-service ./packages/federated-identity-service +COPY .husky .husky +COPY lerna.json ./ +COPY tsconfig-build.json ./ +COPY rollup-template.js ./ +COPY package*.json ./ + +RUN npm install && npm run build && \ + rm -rf node_modules */*/node_modules && \ + npm install --production --ignore-scripts && \ + npm cache clean --force + +FROM node-minimal as federation-server ENV BASE_URL= \ CRON_SERVICE= \ @@ -24,25 +65,9 @@ ENV BASE_URL= \ TRUST_X_FORWARDED_FOR= \ TRUSTED_SERVERS_ADDRESSES= -RUN apt update && apt -y dist-upgrade +COPY --from=1 /usr/src/app /usr/src/app/ WORKDIR /usr/src/app -COPY ./packages/federated-identity-service/server.mjs . - -COPY ./packages/crypto ./packages/crypto -COPY ./packages/logger ./packages/logger -COPY ./packages/matrix-resolve ./packages/matrix-resolve -COPY ./packages/matrix-identity-server ./packages/matrix-identity-server -COPY ./packages/config-parser ./packages/config-parser -COPY ./packages/federated-identity-service ./packages/federated-identity-service -COPY .husky .husky -COPY lerna.json ./ -COPY tsconfig-build.json ./ -COPY rollup-template.js ./ -COPY package*.json ./ - -RUN npm install && npm run build && npm cache clean --force - EXPOSE 3000 -CMD [ "node", "/usr/src/app/server.mjs" ] +CMD [ "node", "/usr/src/app/server.mjs" ] \ No newline at end of file