diff --git a/package-lock.json b/package-lock.json index 90fb6ef0..b0c264eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25013,7 +25013,6 @@ "version": "3.7.0", "resolved": "https://registry.npmjs.org/toad-cache/-/toad-cache-3.7.0.tgz", "integrity": "sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==", - "devOptional": true, "engines": { "node": ">=12" } @@ -27863,7 +27862,8 @@ }, "packages/federated-identity-service/node_modules/ip-address": { "version": "9.0.5", - "license": "MIT", + "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-9.0.5.tgz", + "integrity": "sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==", "dependencies": { "jsbn": "1.1.0", "sprintf-js": "^1.1.3" @@ -27908,12 +27908,14 @@ "@twake/config-parser": "*", "@twake/crypto": "*", "@twake/logger": "*", + "express": "^4.19.2", "express-rate-limit": "^7.2.0", "generic-pool": "^3.9.0", "matrix-resolve": "^1.0.1", "node-cron": "^3.0.2", "node-fetch": "^3.3.0", - "nodemailer": "^6.9.1" + "nodemailer": "^6.9.1", + "toad-cache": "^3.7.0" }, "optionalDependencies": { "ldapjs": "^2.3.3", diff --git a/packages/federated-identity-service/Dockerfile b/packages/federated-identity-service/Dockerfile index f1f1c6a9..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= \ @@ -8,14 +49,11 @@ ENV BASE_URL= \ DATABASE_NAME= \ DATABASE_USER= \ DATABASE_PASSWORD= \ - DATABASE_SSL= \ LDAP_BASE= \ LDAP_FILTER= \ LDAP_USER= \ LDAP_PASSWORD= \ LDAP_URI= \ - LOG_LEVEL=error \ - LOG_TRANSPORTS=Console \ MATRIX_DATABASE_ENGINE= \ MATRIX_DATABASE_HOST= \ MATRIX_DATABASE_NAME= \ @@ -27,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 diff --git a/packages/matrix-identity-server/package.json b/packages/matrix-identity-server/package.json index faceb93a..d15c8c9e 100644 --- a/packages/matrix-identity-server/package.json +++ b/packages/matrix-identity-server/package.json @@ -45,12 +45,14 @@ "@twake/config-parser": "*", "@twake/crypto": "*", "@twake/logger": "*", + "express": "^4.19.2", "express-rate-limit": "^7.2.0", "generic-pool": "^3.9.0", "matrix-resolve": "^1.0.1", "node-cron": "^3.0.2", "node-fetch": "^3.3.0", - "nodemailer": "^6.9.1" + "nodemailer": "^6.9.1", + "toad-cache": "^3.7.0" }, "optionalDependencies": { "ldapjs": "^2.3.3",