Pārlūkot izejas kodu

Merge branch 'feature/complete-config-file' into test

huangzhichao 1 mēnesi atpakaļ
vecāks
revīzija
021d8867a4
4 mainītis faili ar 41 papildinājumiem un 16 dzēšanām
  1. 12 0
      .dockerignore
  2. 1 1
      .eslintrc.js
  3. 14 15
      Dockerfile
  4. 14 0
      ecosystem.config.js

+ 12 - 0
.dockerignore

@@ -0,0 +1,12 @@
+node_modules
+npm-debug.log
+yarn-debug.log
+yarn-error.log
+.git
+.gitignore
+README.md
+.env.local
+.env.development
+.env.test
+*.log
+.DS_Store

+ 1 - 1
.eslintrc.js

@@ -15,7 +15,7 @@ module.exports = {
     node: true,
     jest: true,
   },
-  ignorePatterns: ['.eslintrc.js'],
+  ignorePatterns: ['.eslintrc.js', 'ecosystem.config.js'],
   rules: {
     '@typescript-eslint/interface-name-prefix': 'off',
     '@typescript-eslint/explicit-function-return-type': 'off',

+ 14 - 15
Dockerfile

@@ -1,29 +1,28 @@
-# 使用docker环境对代码进行编译
+# Build stage
 FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine as builder
 
-# 安装 pnpm
+# Install pnpm
 RUN npm install -g pnpm
 
-# 设置工作目录
+# Set working directory
 WORKDIR /app
 
-# 复制 package.json 和 lock 文件
-COPY package*.json ./
-COPY pnpm-lock.yaml ./
+# Copy package files
+COPY package.json pnpm-lock.yaml ./
 
-# 安装依赖
-RUN pnpm install
+# Install dependencies
+RUN pnpm install --frozen-lockfile
 
-# 复制源代码
+# Copy source code
 COPY . .
 
+# Build application
+RUN pnpm build
 
-RUN yarn build
-
-# 将编译完成后的代码打包成dokcer镜像
+# Production stage
 FROM registry.cn-hangzhou.aliyuncs.com/stuuudy/node:18-alpine
 
-# 安装 PM2
+# Install PM2
 RUN npm install -g pm2
 
 WORKDIR /app
@@ -33,9 +32,9 @@ COPY --from=builder /app/dist ./dist
 COPY --from=builder /app/package*.json ./
 COPY --from=builder /app/node_modules ./node_modules
 COPY --from=builder /app/.env ./.env
-
+COPY --from=builder /app/ecosystem.config.js ./
 # 暴露端口(根据您的应用需要修改)
 EXPOSE 3000
 
 # 启动应用
-CMD ["pm2-runtime", "dist/main.js"] 
+CMD ["pm2-runtime", "start", "ecosystem.config.js"] 

+ 14 - 0
ecosystem.config.js

@@ -0,0 +1,14 @@
+module.exports = {
+  apps: [
+    {
+      name: 'agent-server',
+      script: './dist/main.js',
+      env_production: {
+        NODE_ENV: 'production'
+      },
+      env_development: {
+        NODE_ENV: 'development'
+      }
+    }
+  ]
+}