Browse Source

Update to node 14, update packages

ghorsington 3 years ago
parent
commit
adab2ce479
4 changed files with 254 additions and 253 deletions
  1. 92 92
      bot/Dockerfile
  2. 75 77
      bot/package.json
  3. 69 66
      docker-compose.yml
  4. 18 18
      shared/package.json

+ 92 - 92
bot/Dockerfile

@@ -1,93 +1,93 @@
-FROM alpine AS opencv-builder
-
-ARG OPENCV_VERSION
-
-RUN apk --no-cache add python make g++ cmake linux-headers
-
-RUN mkdir opencv && \
-    cd opencv && \
-    wget https://github.com/Itseez/opencv/archive/${OPENCV_VERSION}.zip --no-check-certificate -O opencv-${OPENCV_VERSION}.zip && \
-    unzip opencv-${OPENCV_VERSION}.zip && \
-    mkdir opencv-${OPENCV_VERSION}/build && \
-    cd opencv-${OPENCV_VERSION}/build && \
-    cmake_flags="-D CMAKE_BUILD_TYPE=RELEASE \
-    -D BUILD_EXAMPLES=OFF \
-	-D BUILD_DOCS=OFF \
-	-D BUILD_TESTS=OFF \
-	-D BUILD_PERF_TESTS=OFF \
-	-D BUILD_JAVA=OFF \
-	-D BUILD_opencv_apps=OFF \
-	-D BUILD_opencv_aruco=OFF \
-	-D BUILD_opencv_bgsegm=OFF \
-	-D BUILD_opencv_bioinspired=OFF \
-	-D BUILD_opencv_ccalib=OFF \
-	-D BUILD_opencv_datasets=OFF \
-	-D BUILD_opencv_dnn_objdetect=OFF \
-	-D BUILD_opencv_dpm=OFF \
-	-D BUILD_opencv_fuzzy=OFF \
-	-D BUILD_opencv_hfs=OFF \
-	-D BUILD_opencv_java_bindings_generator=OFF \
-	-D BUILD_opencv_js=OFF \
-    -D BUILD_opencv_img_hash=OFF \
-    -D BUILD_opencv_line_descriptor=OFF \
-    -D BUILD_opencv_optflow=OFF \
-    -D BUILD_opencv_phase_unwrapping=OFF \
-	-D BUILD_opencv_python3=OFF \
-	-D BUILD_opencv_python_bindings_generator=OFF \
-	-D BUILD_opencv_reg=OFF \
-	-D BUILD_opencv_rgbd=OFF \
-	-D BUILD_opencv_saliency=OFF \
-	-D BUILD_opencv_shape=OFF \
-	-D BUILD_opencv_stereo=OFF \
-	-D BUILD_opencv_stitching=OFF \
-	-D BUILD_opencv_structured_light=OFF \
-	-D BUILD_opencv_superres=OFF \
-	-D BUILD_opencv_surface_matching=OFF \
-	-D BUILD_opencv_ts=OFF \
-	-D BUILD_opencv_xobjdetect=OFF \
-	-D BUILD_opencv_xphoto=OFF" && \
-    echo $cmake_flags && \
-    cmake $cmake_flags .. && \
-    make -j $(nproc) && \
-    make install
-
-FROM node:10-alpine AS builder
-
-ARG OPENCV_VERSION
-ENV OPENCV4NODEJS_DISABLE_AUTOBUILD=1
-
-RUN apk --no-cache add python make g++
-
-COPY --from=opencv-builder /opencv/opencv-${OPENCV_VERSION}/build/lib/libopencv* /usr/local/lib/
-COPY --from=opencv-builder /usr/local/include/opencv2 /usr/local/include/opencv2
-COPY --from=opencv-builder /usr/local/share/OpenCV /usr/local/share/OpenCV
-COPY ./bot/package.json ./
-RUN npm install
-
-WORKDIR /shared/
-COPY ./shared/package.json .
-RUN npm install
-
-FROM node:10-alpine
-
-ARG OPENCV_VERSION
-WORKDIR /app
-
-RUN apk --no-cache add make
-
-COPY --from=builder node_modules bot/node_modules
-COPY --from=builder /shared/node_modules shared/node_modules
-COPY --from=opencv-builder /opencv/opencv-${OPENCV_VERSION}/build/lib/libopencv* /usr/local/lib/
-COPY --from=opencv-builder /usr/local/include/opencv2 /usr/local/include/opencv2
-COPY --from=opencv-builder /usr/local/share/OpenCV /usr/local/share/OpenCV
-
-COPY ./bot bot
-COPY ./shared shared
-COPY ./Makefile Makefile
-
-RUN make build_bot
-
-WORKDIR /app/bot
-
-EXPOSE 3000
+FROM alpine AS opencv-builder
+
+ARG OPENCV_VERSION
+
+RUN apk --no-cache add python make g++ cmake linux-headers
+
+RUN mkdir opencv && \
+    cd opencv && \
+    wget https://github.com/opencv/opencv/archive/${OPENCV_VERSION}.zip --no-check-certificate -O opencv-${OPENCV_VERSION}.zip && \
+    unzip opencv-${OPENCV_VERSION}.zip && \
+    mkdir opencv-${OPENCV_VERSION}/build && \
+    cd opencv-${OPENCV_VERSION}/build && \
+    cmake_flags="-D CMAKE_BUILD_TYPE=RELEASE \
+    -D BUILD_EXAMPLES=OFF \
+	-D BUILD_DOCS=OFF \
+	-D BUILD_TESTS=OFF \
+	-D BUILD_PERF_TESTS=OFF \
+	-D BUILD_JAVA=OFF \
+	-D BUILD_opencv_apps=OFF \
+	-D BUILD_opencv_aruco=OFF \
+	-D BUILD_opencv_bgsegm=OFF \
+	-D BUILD_opencv_bioinspired=OFF \
+	-D BUILD_opencv_ccalib=OFF \
+	-D BUILD_opencv_datasets=OFF \
+	-D BUILD_opencv_dnn_objdetect=OFF \
+	-D BUILD_opencv_dpm=OFF \
+	-D BUILD_opencv_fuzzy=OFF \
+	-D BUILD_opencv_hfs=OFF \
+	-D BUILD_opencv_java_bindings_generator=OFF \
+	-D BUILD_opencv_js=OFF \
+    -D BUILD_opencv_img_hash=OFF \
+    -D BUILD_opencv_line_descriptor=OFF \
+    -D BUILD_opencv_optflow=OFF \
+    -D BUILD_opencv_phase_unwrapping=OFF \
+	-D BUILD_opencv_python3=OFF \
+	-D BUILD_opencv_python_bindings_generator=OFF \
+	-D BUILD_opencv_reg=OFF \
+	-D BUILD_opencv_rgbd=OFF \
+	-D BUILD_opencv_saliency=OFF \
+	-D BUILD_opencv_shape=OFF \
+	-D BUILD_opencv_stereo=OFF \
+	-D BUILD_opencv_stitching=OFF \
+	-D BUILD_opencv_structured_light=OFF \
+	-D BUILD_opencv_superres=OFF \
+	-D BUILD_opencv_surface_matching=OFF \
+	-D BUILD_opencv_ts=OFF \
+	-D BUILD_opencv_xobjdetect=OFF \
+	-D BUILD_opencv_xphoto=OFF" && \
+    echo $cmake_flags && \
+    cmake $cmake_flags .. && \
+    make -j $(nproc) && \
+    make install
+
+FROM node:10-alpine AS builder
+
+ARG OPENCV_VERSION
+ENV OPENCV4NODEJS_DISABLE_AUTOBUILD=1
+
+RUN apk --no-cache add python make g++
+
+COPY --from=opencv-builder /opencv/opencv-${OPENCV_VERSION}/build/lib/libopencv* /usr/local/lib/
+COPY --from=opencv-builder /usr/local/include/opencv2 /usr/local/include/opencv2
+COPY --from=opencv-builder /usr/local/share/OpenCV /usr/local/share/OpenCV
+COPY ./bot/package.json ./
+RUN npm install
+
+WORKDIR /shared/
+COPY ./shared/package.json .
+RUN npm install
+
+FROM node:14-alpine
+
+ARG OPENCV_VERSION
+WORKDIR /app
+
+RUN apk --no-cache add make
+
+COPY --from=builder node_modules bot/node_modules
+COPY --from=builder /shared/node_modules shared/node_modules
+COPY --from=opencv-builder /opencv/opencv-${OPENCV_VERSION}/build/lib/libopencv* /usr/local/lib/
+COPY --from=opencv-builder /usr/local/include/opencv2 /usr/local/include/opencv2
+COPY --from=opencv-builder /usr/local/share/OpenCV /usr/local/share/OpenCV
+
+COPY ./bot bot
+COPY ./shared shared
+COPY ./Makefile Makefile
+
+RUN make build_bot
+
+WORKDIR /app/bot
+
+EXPOSE 3000
 CMD npm run start

+ 75 - 77
bot/package.json

@@ -1,77 +1,75 @@
-{
-   "name": "noctbot",
-   "version": "1.0.0",
-   "description": "He is a Robot, his name is Noct. He is the Robo-Noct!",
-   "main": "build/main.js",
-   "scripts": {
-      "watch": "rimraf build && tsc -w",
-      "build": "rimraf build && tsc",
-      "start": "node ./build/main.js",
-      "typeorm": "rimraf build && ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
-   },
-   "repository": {
-      "type": "git",
-      "url": "https://git.coder.horse/ghorsington/noctbot"
-   },
-   "keywords": [
-      "bot",
-      "noct",
-      "discord.js",
-      "discord"
-   ],
-   "author": "Geoffrey Horsington <geoffrey.hoooooorse@gmail.com>",
-   "license": "MIT",
-   "_moduleAliases": {
-      "@shared": "../shared/lib/src",
-      "src": "./build"
-   },
-   "dependencies": {
-      "@google-cloud/translate": "^4.1.1",
-      "@types/cheerio": "^0.22.12",
-      "@types/dotenv": "^6.1.1",
-      "@types/koa": "^2.0.49",
-      "@types/koa-router": "^7.0.42",
-      "@types/lowdb": "^1.0.9",
-      "@types/node-schedule": "^1.2.3",
-      "@types/request-promise-native": "^1.0.16",
-      "@types/sha1": "^1.1.2",
-      "@types/turndown": "^5.0.0",
-      "@types/xml2js": "^0.4.4",
-      "@types/yaml": "^1.0.2",
-      "axios": "^0.19.0",
-      "cheerio": "^1.0.0-rc.3",
-      "discord.js": "^11.5.1",
-      "dotenv": "^8.0.0",
-      "emoji-regex": "^8.0.0",
-      "html2bbcode": "^1.2.6",
-      "interval-promise": "^1.2.0",
-      "jimp": "^0.5.4",
-      "koa": "^2.8.1",
-      "koa-body": "^4.1.1",
-      "koa-router": "^7.4.0",
-      "lowdb": "^1.0.0",
-      "module-alias": "^2.2.0",
-      "node-schedule": "^1.3.2",
-      "opencv4nodejs": "^4.9.0",
-      "pg": "^7.11.0",
-      "reflect-metadata": "^0.1.10",
-      "request": "^2.88.0",
-      "request-promise-native": "^1.0.5",
-      "rimraf": "^2.6.3",
-      "rss-parser": "^3.4.3",
-      "sha1": "^1.1.1",
-      "tsconfig-paths": "^3.8.0",
-      "turndown": "^5.0.1",
-      "typeorm": "^0.2.21",
-      "typescript": "^3.5.2",
-      "typescript-rest-rpc": "^1.0.10",
-      "uws": "^99.0.0",
-      "yaml": "^1.6.0"
-   },
-   "devDependencies": {
-      "@types/node": "^8.0.29",
-      "eslint": "^5.16.0",
-      "nodemon": "^1.19.1",
-      "ts-node": "3.3.0"
-   }
-}
+{
+   "name": "noctbot",
+   "version": "1.0.0",
+   "description": "He is a Robot, his name is Noct. He is the Robo-Noct!",
+   "main": "build/main.js",
+   "scripts": {
+      "watch": "rimraf build && tsc -w",
+      "build": "rimraf build && tsc",
+      "start": "node ./build/main.js",
+      "typeorm": "rimraf build && ts-node -r tsconfig-paths/register ./node_modules/typeorm/cli.js"
+   },
+   "repository": {
+      "type": "git",
+      "url": "https://git.coder.horse/ghorsington/noctbot"
+   },
+   "keywords": [
+      "bot",
+      "noct",
+      "discord.js",
+      "discord"
+   ],
+   "author": "Geoffrey Horsington <geoffrey.hoooooorse@gmail.com>",
+   "license": "MIT",
+   "_moduleAliases": {
+      "@shared": "../shared/lib/src",
+      "src": "./build"
+   },
+   "dependencies": {
+      "@google-cloud/translate": "^5.3.0",
+      "@types/cheerio": "^0.22.18",
+      "@types/koa": "^2.11.3",
+      "@types/koa-router": "^7.4.1",
+      "@types/lowdb": "^1.0.9",
+      "@types/node-schedule": "^1.3.0",
+      "@types/request-promise-native": "^1.0.17",
+      "@types/sha1": "^1.1.2",
+      "@types/turndown": "^5.0.0",
+      "@types/xml2js": "^0.4.5",
+      "axios": "^0.19.2",
+      "cheerio": "^1.0.0-rc.3",
+      "discord.js": "^12.2.0",
+      "dotenv": "^8.2.0",
+      "emoji-regex": "^9.0.0",
+      "html2bbcode": "^1.2.6",
+      "interval-promise": "^1.4.0",
+      "jimp": "^0.12.1",
+      "koa": "^2.12.0",
+      "koa-body": "^4.1.3",
+      "koa-router": "^8.0.8",
+      "lowdb": "^1.0.0",
+      "module-alias": "^2.2.2",
+      "node-schedule": "^1.3.2",
+      "opencv4nodejs": "^5.6.0",
+      "pg": "^8.2.1",
+      "reflect-metadata": "^0.1.13",
+      "request": "^2.88.2",
+      "request-promise-native": "^1.0.8",
+      "rimraf": "^3.0.2",
+      "rss-parser": "^3.8.0",
+      "sha1": "^1.1.1",
+      "tsconfig-paths": "^3.9.0",
+      "turndown": "^6.0.0",
+      "typeorm": "^0.2.25",
+      "typescript": "^3.9.3",
+      "typescript-rest-rpc": "^1.0.10",
+      "uws": "^100.0.1",
+      "yaml": "^1.10.0"
+   },
+   "devDependencies": {
+      "@types/node": "^14.0.5",
+      "eslint": "^7.1.0",
+      "nodemon": "^2.0.4",
+      "ts-node": "8.10.2"
+   }
+}

+ 69 - 66
docker-compose.yml

@@ -1,66 +1,69 @@
-version: '3.7'
-
-services:
-  noctbot:
-    image: noctbot
-    build:
-      context: ./
-      dockerfile: ./bot/Dockerfile
-      args:
-        OPENCV_VERSION: 3.4
-    restart: always
-    depends_on:
-      - db
-    env_file: 
-      - .env
-      - db.env
-    environment:
-      NODE_ENV: production
-      BOT_TOKEN: ${BOT_TOKEN}
-      FORUM_PASS: ${FORUM_PASS}
-      FORUM_API_KEY: ${FORUM_API_KEY}
-      IGNORE_CHANGED_NEWS: ${IGNORE_CHANGED_NEWS}
-      NPM_CONFIG_LOGLEVEL: info
-      TYPEORM_USERNAME: ${DB_USERNAME}
-      TYPEORM_PASSWORD: ${DB_PASSWORD}
-      TYPEORM_DATABASE: ${DB_NAME}
-    ports:
-      - 3010:3010
-
-  web:
-    image: noctbot_web
-    build:
-      context: ./
-      dockerfile: ./web/Dockerfile
-    restart: always
-    depends_on:
-      - db
-    env_file:
-      - .env
-      - db.env
-    environment:
-      NODE_ENV: production
-      TYPEORM_USERNAME: ${DB_USERNAME}
-      TYPEORM_PASSWORD: ${DB_PASSWORD}
-      TYPEORM_DATABASE: ${DB_NAME}
-    ports:
-      - 3020:3000
-
-  db:
-    image: postgres
-    restart: always
-    env_file:
-      - ./db.env
-    environment: 
-      POSTGRES_PASSWORD: ${DB_PASSWORD}
-      POSTGRES_USER: ${DB_USERNAME}
-    volumes:
-      - ./data/db:/var/lib/postgresql/data
-    ports:
-      - 5432:5432
-
-  adminer:
-    image: adminer
-    restart: always
-    ports:
-      - 3030:8080
+version: '3.7'
+
+services:
+  noctbot:
+    image: noctbot
+    build:
+      context: ./
+      dockerfile: ./bot/Dockerfile
+      args:
+        OPENCV_VERSION: 3.4
+    restart: always
+    depends_on:
+      - db
+    env_file: 
+      - .env
+      - db.env
+    environment:
+      NODE_ENV: production
+      BOT_TOKEN: ${BOT_TOKEN}
+      FORUM_PASS: ${FORUM_PASS}
+      FORUM_API_KEY: ${FORUM_API_KEY}
+      IGNORE_CHANGED_NEWS: ${IGNORE_CHANGED_NEWS}
+      NPM_CONFIG_LOGLEVEL: info
+      TYPEORM_USERNAME: ${DB_USERNAME}
+      TYPEORM_PASSWORD: ${DB_PASSWORD}
+      TYPEORM_DATABASE: ${DB_NAME}
+    ports:
+      - 3010:3010
+
+  web:
+    image: noctbot_web
+    build:
+      context: ./
+      dockerfile: ./web/Dockerfile
+    restart: always
+    depends_on:
+      - db
+    env_file:
+      - .env
+      - db.env
+    environment:
+      NODE_ENV: production
+      TYPEORM_USERNAME: ${DB_USERNAME}
+      TYPEORM_PASSWORD: ${DB_PASSWORD}
+      TYPEORM_DATABASE: ${DB_NAME}
+    ports:
+      - 3020:3000
+
+  db:
+    image: postgres
+    restart: always
+    env_file:
+      - ./db.env
+    environment: 
+      POSTGRES_PASSWORD: ${DB_PASSWORD}
+      POSTGRES_USER: ${DB_USERNAME}
+    volumes:
+      - db-data:/var/lib/postgresql/data
+    ports:
+      - 5432:5432
+
+  adminer:
+    image: adminer
+    restart: always
+    ports:
+      - 3030:8080
+      
+volumes:
+  db-data:

+ 18 - 18
shared/package.json

@@ -1,18 +1,18 @@
-{
-  "name": "shared",
-  "version": "1.0.0",
-  "description": "",
-  "main": "index.js",
-  "scripts": {
-    "test": "echo \"Error: no test specified\" && exit 1",
-    "build": "rimraf build && tsc"
-  },
-  "author": "ghorsington",
-  "license": "ISC",
-  "dependencies": {
-    "@types/node": "^12.6.8",
-    "rimraf": "^2.6.3",
-    "typeorm": "^0.2.18",
-    "typescript": "^3.5.3"
-  }
-}
+{
+  "name": "shared",
+  "version": "1.0.0",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "build": "rimraf build && tsc"
+  },
+  "author": "ghorsington",
+  "license": "ISC",
+  "dependencies": {
+    "@types/node": "^14.0.5",
+    "rimraf": "^3.0.2",
+    "typeorm": "^0.2.25",
+    "typescript": "^3.9.3"
+  }
+}