Bladeren bron

dockerized /server (with volume for /server/data)

Christian Kahlau 2 jaren geleden
bovenliggende
commit
79b3846489
5 gewijzigde bestanden met toevoegingen van 64 en 5 verwijderingen
  1. 1 0
      .dockerignore
  2. 18 0
      server.docker-compose.yml
  3. 45 0
      server.dockerfile
  4. 0 1
      server/package.json
  5. 0 4
      server/src/index.ts

+ 1 - 0
.dockerignore

@@ -0,0 +1 @@
+**/node_modules

+ 18 - 0
server.docker-compose.yml

@@ -0,0 +1,18 @@
+version: '3.8'
+services:
+  server:
+    build:
+      context: .
+      dockerfile: server.dockerfile
+    image: monitoring-server:latest
+    environment:
+      - DEV_MODE=1
+      - LOG_LEVEL=DEBUG
+      - WEB_PORT=80
+      - DATA_DIR=data
+      - GOOGLE_APPLICATION_CREDENTIALS="google-cloud/firebase-adminsdk.json"
+      - NOTIFICATION_ICON_URL="https://fcm.hostbbq.net/logo.png"
+    ports:
+      - 8880:80
+    volumes:
+      - ./server/data:/home/node/monitoring/data

+ 45 - 0
server.dockerfile

@@ -0,0 +1,45 @@
+FROM node:18 as build_helper
+
+ARG HOME="/home/node"
+ARG APPDIR="${HOME}/monitoring"
+RUN mkdir ${APPDIR}
+WORKDIR ${APPDIR}
+
+COPY ./ng/package.json ./ng/
+RUN cd ng && npm install
+
+COPY ./server/package.json ./server/
+RUN cd server && npm install
+
+COPY ./common/ ./common
+COPY ./bootstrap-theme/ ./bootstrap-theme
+
+COPY ./ng/ ./ng
+
+RUN cd ng && npm run build
+
+COPY ./server/tsconfig* ./server/
+COPY ./server/google-cloud/ ./server/google-cloud
+COPY ./server/src/ ./server/src
+
+RUN cd ${APPDIR}/server && npm run build
+
+FROM node:18
+
+ARG HOME="/home/node"
+ARG APPDIR="${HOME}/monitoring"
+RUN mkdir ${APPDIR}
+WORKDIR ${APPDIR}
+
+COPY --from=build_helper ${APPDIR}/server/dist/ ./dist
+COPY --from=build_helper ${APPDIR}/server/public/ ./public
+COPY ./server/package.json .
+
+RUN npm install --omit=dev
+
+RUN mkdir data
+VOLUME ${APPDIR}/data
+
+EXPOSE 80
+
+CMD [ "node" , "." ]

+ 0 - 1
server/package.json

@@ -11,7 +11,6 @@
   "license": "ISC",
   "dependencies": {
     "axios": "^0.27.2",
-    "dotenv": "^16.0.2",
     "express": "^4.18.1",
     "firebase-admin": "^11.4.1",
     "moment": "^2.29.4",

+ 0 - 4
server/src/index.ts

@@ -1,5 +1,3 @@
-import dotenv from 'dotenv';
-
 import { Logger, LogLevel } from '../../common/util/logger.class';
 
 import { ControllerPool } from './ctrl/controller-pool.interface';
@@ -9,8 +7,6 @@ import { ServerConnector } from './ctrl/server-connector.class';
 import { Webserver } from './webserver.class';
 import { Timer } from './timer.class';
 
-dotenv.config();
-
 const LOG_LEVEL: LogLevel = (process.env.LOG_LEVEL as LogLevel) || 'INFO';
 Logger.logLevel = LOG_LEVEL;