Skip to content

Commit

Permalink
Reduce federation-server Docker image
Browse files Browse the repository at this point in the history
  • Loading branch information
guimard committed Apr 23, 2024
1 parent 3498a5d commit f47bd2f
Show file tree
Hide file tree
Showing 2 changed files with 45 additions and 22 deletions.
4 changes: 1 addition & 3 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,7 @@ ENV BASE_URL= \

COPY --from=1 /usr/src/app /usr/src/app/

RUN ls -l /usr/src/app

WORKDIR /usr/src/app

EXPOSE 3000
CMD [ "node", "/usr/src/app/server.mjs" ]
CMD [ "node", "/usr/src/app/server.mjs" ]
63 changes: 44 additions & 19 deletions packages/federation-server/Dockerfile
Original file line number Diff line number Diff line change
@@ -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/federation-server/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/federation-server ./packages/federation-server
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= \
Expand All @@ -23,25 +64,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/federation-server/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/federation-server ./packages/federation-server
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" ]

0 comments on commit f47bd2f

Please sign in to comment.