From 5a40b44dd11f3f9592587f9225c3766ca97d14c5 Mon Sep 17 00:00:00 2001 From: Evert Prants Date: Sun, 27 Nov 2022 10:14:01 +0200 Subject: [PATCH] docker support --- .dockerignore | 7 ++++ Dockerfile | 50 ++++++++++++++++++++++++ package-lock.json | 11 +++--- package.json | 2 +- src/modules/objects/user/user.service.ts | 1 + 5 files changed, 65 insertions(+), 6 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..d483205 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,7 @@ +devdocker/ +dist/ +node_modules/ +private/ +*.toml +uploads/* +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..6d928a7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,50 @@ +################### +# BUILD FOR LOCAL DEVELOPMENT +################### + +FROM node:18-alpine As development + +USER node +WORKDIR /usr/src/app + +COPY --chown=node:node package*.json ./ + +RUN npm ci + +COPY --chown=node:node . . + +################### +# BUILD FOR PRODUCTION +################### + +FROM node:18-alpine As build + +USER node +WORKDIR /usr/src/app + +COPY --chown=node:node package*.json ./ +COPY --chown=node:node --from=development /usr/src/app/node_modules ./node_modules +COPY --chown=node:node . . + +RUN npm run build + +ENV NODE_ENV production + +RUN npm ci --omit=dev && npm cache clean --force + +################### +# PRODUCTION +################### + +FROM node:18-alpine As production + +USER node +WORKDIR /app + +COPY --chown=node:node --from=build /usr/src/app/node_modules ./node_modules +COPY --chown=node:node --from=build /usr/src/app/dist ./dist +COPY --chown=node:node --from=build /usr/src/app/views ./views +COPY --chown=node:node --from=build /usr/src/app/public ./public +COPY --chown=node:node --from=build /usr/src/app/package*.json ./package*.json + +CMD [ "node", "dist/main.js" ] diff --git a/package-lock.json b/package-lock.json index dc38417..65a9f5e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "license": "UNLICENSED", "dependencies": { - "@icynet/oauth2-provider": "git+https://gitlab.icynet.eu/IcyNetwork/oauth2-provider.git", + "@icynet/oauth2-provider": "^1.0.6", "@nestjs/common": "^9.0.11", "@nestjs/core": "^9.0.11", "@nestjs/platform-express": "^9.0.11", @@ -2143,8 +2143,8 @@ }, "node_modules/@icynet/oauth2-provider": { "version": "1.0.6", - "resolved": "git+https://gitlab.icynet.eu/IcyNetwork/oauth2-provider.git#ef4a5abac9f3cc2ef9e5476ea3b4ae28e337cb8c", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@icynet/oauth2-provider/-/oauth2-provider-1.0.6.tgz", + "integrity": "sha512-CsPQZB0Jbzxll4re34aPtZFVNkeeWtC4aW9UZCg8U57fPL8/Xe/2dfnigxdn4r9jVdd6d/qiFSh5x7wrFUmYrw==", "dependencies": { "express": "^4.17.3", "express-session": "^1.17.2" @@ -14155,8 +14155,9 @@ "dev": true }, "@icynet/oauth2-provider": { - "version": "git+https://gitlab.icynet.eu/IcyNetwork/oauth2-provider.git#ef4a5abac9f3cc2ef9e5476ea3b4ae28e337cb8c", - "from": "@icynet/oauth2-provider@git+https://gitlab.icynet.eu/IcyNetwork/oauth2-provider.git", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@icynet/oauth2-provider/-/oauth2-provider-1.0.6.tgz", + "integrity": "sha512-CsPQZB0Jbzxll4re34aPtZFVNkeeWtC4aW9UZCg8U57fPL8/Xe/2dfnigxdn4r9jVdd6d/qiFSh5x7wrFUmYrw==", "requires": { "express": "^4.17.3", "express-session": "^1.17.2" diff --git a/package.json b/package.json index 5cf1b66..c8e2538 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { - "@icynet/oauth2-provider": "git+https://gitlab.icynet.eu/IcyNetwork/oauth2-provider.git", + "@icynet/oauth2-provider": "^1.0.6", "@nestjs/common": "^9.0.11", "@nestjs/core": "^9.0.11", "@nestjs/platform-express": "^9.0.11", diff --git a/src/modules/objects/user/user.service.ts b/src/modules/objects/user/user.service.ts index 7e02597..d492bb7 100644 --- a/src/modules/objects/user/user.service.ts +++ b/src/modules/objects/user/user.service.ts @@ -252,6 +252,7 @@ export class UserService { user.username = newUserInfo.username; user.display_name = newUserInfo.display_name; user.password = hashword; + user.activity_at = new Date(); await this.userRepository.insert(user);