Browse Source

添加 docker 构建和运行相关脚本

reghao 3 weeks ago
parent
commit
e67062baa1
2 changed files with 45 additions and 2 deletions
  1. 26 2
      Dockerfile
  2. 19 0
      docker-compose.yml

+ 26 - 2
Dockerfile

@@ -1,4 +1,28 @@
-FROM registry.cn-chengdu.aliyuncs.com/reghao/nginx_npm:1.21
+# --- 阶段一:构建阶段 (Build Stage) ---
+FROM registry.cn-chengdu.aliyuncs.com/azysrv/node:16.20.2-buster-slim AS build-stage
+
+ARG BUILD_ENV
+ENV NPM_CONFIG_REGISTRY=https://registry.npmmirror.com
+
+# 设置容器内的工作目录
+WORKDIR /app
+    
+# 利用 Docker 缓存机制:先拷贝 package.json
+COPY package*.json ./
+    
+# 安装依赖
+RUN npm install
+    
+# 拷贝所有源代码
+COPY . .
+    
+# 执行打包命令(通常生成 dist 目录)
+RUN npm run build
+    
+# --- 阶段二:生产阶段 (Production Stage) ---
+FROM registry.cn-chengdu.aliyuncs.com/azysrv/nginx_npm:1.21 AS production-stage
+# --- 阶段二重新声明变量 ---
+ARG BUILD_ENV
 
 RUN sed -i 's/8080/4040/' /etc/nginx/conf.d/http.conf
-COPY ./dist/ /opt/webroot/
+COPY --from=build-stage /app/dist/ /opt/webroot/

+ 19 - 0
docker-compose.yml

@@ -0,0 +1,19 @@
+services:
+  ops-app:
+    image: ops-app:12345678
+    container_name: ops-app
+    restart: always
+    network_mode: host
+    deploy:
+      resources:
+        limits:
+          cpus: '0.5'
+          memory: 512M
+        reservations:
+          cpus: '0.1'
+          memory: 128M
+    logging:
+      driver: "json-file"
+      options:
+        max-size: "10m"
+        max-file: "3"