ソースを参照

add: Docker profiles

gugdun 10 ヶ月 前
コミット
ae36efc1cb
5 ファイル変更29 行追加7 行削除
  1. 8 0
      Dockerfile.development
  2. 1 1
      Dockerfile.production
  3. 19 4
      compose.yaml
  4. 0 1
      src/index.js
  5. 1 1
      src/routes/auth.js

+ 8 - 0
Dockerfile.development

@@ -0,0 +1,8 @@
+FROM node:lts-alpine
+
+RUN mkdir -p /home/node/app && chown node:node /home/node/app
+WORKDIR /home/node/app
+USER node
+
+EXPOSE 8080
+CMD ["npm", "run", "dev"]

+ 1 - 1
Dockerfile → Dockerfile.production

@@ -9,4 +9,4 @@ RUN npm install
 COPY --chown=node:node . .
 
 EXPOSE 8080
-CMD ["node", "src/index.js"]
+CMD ["npm", "run", "start"]

+ 19 - 4
compose.yaml

@@ -1,9 +1,21 @@
 services:
-  web:
-    build: .
+  prod:
+    build:
+      dockerfile: Dockerfile.production
     restart: always
     ports:
       - 8080:5000
+    profiles: [prod]
+
+  dev:
+    build:
+      dockerfile: Dockerfile.development
+    restart: always
+    ports:
+      - 8080:5000
+    volumes:
+      - .:/home/node/app
+    profiles: [dev]
 
   adminer:
     image: adminer
@@ -15,7 +27,10 @@ services:
     image: "postgres:alpine"
     restart: always
     shm_size: 128mb
-    ports:
-      - 5432:5432
+    volumes:
+      - postgres_data:/var/lib/postgresql/data
     environment:
       POSTGRES_PASSWORD: change-me
+
+volumes:
+  postgres_data:

+ 0 - 1
src/index.js

@@ -10,7 +10,6 @@ const passport = require("passport");
 const session = require("express-session");
 const pgSession = require("connect-pg-simple")(session);
 
-const db = require("./db");
 const indexRouter = require("./routes/index");
 const authRouter = require("./routes/auth");
 

+ 1 - 1
src/routes/auth.js

@@ -20,7 +20,7 @@ passport.use(new LocalStrategy(async (username, password, cb) => {
             return cb(null, data);
         });
     }).catch(err => {
-        return cb(err);
+        return cb(null);
     });
 }));