瀏覽代碼

add docker deployment

Klaudiusz Dembler 4 年之前
父節點
當前提交
2f6d13b25a
共有 5 個文件被更改,包括 43 次插入2 次删除
  1. 5 0
      .dockerignore
  2. 19 0
      Dockerfile
  3. 11 0
      docker-compose.yml
  4. 6 1
      src/config.ts
  5. 2 1
      src/server.ts

+ 5 - 0
.dockerignore

@@ -0,0 +1,5 @@
+*.log
+node_modules/
+dist/
+Dockerfile
+docker-compose.yml

+ 19 - 0
Dockerfile

@@ -0,0 +1,19 @@
+FROM node:12 AS build
+
+WORKDIR /usr/src/orion
+
+COPY . .
+RUN yarn install --frozen-lockfile
+RUN yarn run build
+
+
+FROM node:12
+
+WORKDIR /usr/src/orion
+
+COPY package.json .
+COPY yarn.lock .
+COPY --from=build /usr/src/orion/dist dist/
+RUN yarn install --frozen-lockfile --production
+
+CMD ["yarn", "start"]

+ 11 - 0
docker-compose.yml

@@ -0,0 +1,11 @@
+version: "3.8"
+services:
+  orion:
+    image: orion:latest
+    environment:
+    - ORION_PORT=6116
+    - ORION_MONGO_HOSTNAME=mongo
+    ports:
+    - "6116:6116"
+  mongo:
+    image: library/mongo:4.4

+ 6 - 1
src/config.ts

@@ -27,7 +27,12 @@ const loadEnvVar = (name: string, { defaultValue, devDefaultValue }: LoadEnvVarO
 
 const rawPort = loadEnvVar('ORION_PORT', { defaultValue: '6116' })
 const port = parseInt(rawPort)
-const mongoDBUri = loadEnvVar('ORION_MONGO_URI', { devDefaultValue: 'mongodb://localhost:27017/orion' })
+
+const mongoHostname = loadEnvVar('ORION_MONGO_HOSTNAME', { devDefaultValue: 'localhost' })
+const rawMongoPort = loadEnvVar('ORION_MONGO_PORT', { defaultValue: '27017' })
+const mongoDatabase = loadEnvVar('ORION_MONGO_DATABASE', { defaultValue: 'orion' })
+
+const mongoDBUri = `mongodb://${mongoHostname}:${rawMongoPort}/${mongoDatabase}`
 
 export default {
   port,

+ 2 - 1
src/server.ts

@@ -21,8 +21,9 @@ const main = async () => {
       useCreateIndex: true,
     })
     await mongoose.connection
-  } catch {
+  } catch (error) {
     process.stdout.write(' Failed!\n')
+    console.error(error)
     process.exit()
     return
   }