Ver Fonte

Streamlining the docker image

bodicsek há 3 anos atrás
pai
commit
57f801f2e7
3 ficheiros alterados com 16 adições e 9 exclusões
  1. 4 0
      .dockerignore
  2. 10 7
      Dockerfile
  3. 2 2
      package.json

+ 4 - 0
.dockerignore

@@ -5,3 +5,7 @@ node_modules
 dist
 .dockerignore
 Dockerfile
+.eslintrc.js
+.prettierrc
+deployment
+test

+ 10 - 7
Dockerfile

@@ -1,15 +1,18 @@
-FROM container-registry.oracle.com/os/oraclelinux:8
-
+FROM container-registry.oracle.com/os/oraclelinux:8 as base
 RUN dnf upgrade -y && \
     dnf module enable nodejs:16 -y && \
     dnf module install nodejs -y
 
+FROM base AS builder
 WORKDIR /app
-
 COPY . .
+RUN npm ci && npm run build
 
-RUN npm ci
-
+FROM base
+WORKDIR /app
+COPY --from=builder /app/dist dist
+COPY --from=builder /app/package.json .
+COPY --from=builder /app/package-lock.json .
+RUN npm ci --omit=dev
 EXPOSE 3000
-
-CMD [ "npm", "run", "start" ]
+CMD [ "npm", "run", "start:prod" ]

+ 2 - 2
package.json

@@ -1,6 +1,6 @@
 {
   "name": "occ-fw-backend",
-  "version": "0.0.1",
+  "version": "0.0.2",
   "description": "",
   "author": "",
   "private": true,
@@ -15,7 +15,7 @@
     "build:container": "docker build -t $npm_package_config_registry/$npm_package_name:$npm_package_version .",
     "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
     "start": "nest start",
-    "start:container": "npm run build:container && docker run --rm -d -p 3000:3000 $npm_package_name:$npm_package_version",
+    "start:container": "npm run build:container && docker run --rm -d -p 3000:3000 $npm_package_config_registry/$npm_package_name:$npm_package_version",
     "start:dev": "nest start --watch",
     "start:debug": "nest start --debug --watch",
     "start:prod": "node dist/main",