新增Dockerfile

This commit is contained in:
启航老齐 2025-12-29 08:12:05 +08:00
parent 98361b477b
commit 61f4e63ff1
8 changed files with 267 additions and 1 deletions

7
api/erp-api/Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY ./target/erp-api-2.12.0.jar erp-api.jar
CMD ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "erp-api.jar"]

View File

@ -2,6 +2,6 @@ FROM openjdk:17-jdk-slim
WORKDIR /app
COPY ./target/gateway-1.0.0.jar gateway.jar
COPY ./target/gateway-2.12.0.jar gateway.jar
CMD ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "gateway.jar"]

7
api/oms-api/Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY ./target/oms-api-2.12.0.jar sys-api.jar
CMD ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "oms-api.jar"]

7
api/sys-api/Dockerfile Normal file
View File

@ -0,0 +1,7 @@
FROM openjdk:17-jdk-slim
WORKDIR /app
COPY ./target/sys-api-2.12.0.jar sys-api.jar
CMD ["java", "-Duser.timezone=Asia/Shanghai", "-jar", "sys-api.jar"]

136
docker-compose.yml Normal file
View File

@ -0,0 +1,136 @@
version: '3.8'
services:
redis:
image: redis:7
container_name: redis
ports:
- "6379:6379" # 映射6379端口
command: ["redis-server"] # 允许所有IP访问
volumes:
- redis_data:/data
restart: always
networks:
- my-network
nacos:
image: nacos/nacos-server:v2.3.2
container_name: nacos
environment:
MODE: standalone # 单机模式
NACOS_AUTH_ENABLED: "false" # 禁用认证
ports:
- "8848:8848"
- "9848:9848"
restart: always
volumes:
- nacos_data:/home/nacos/data
networks:
- my-network # 自定义网络
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8848/nacos/v1/ns/operator/servers"]
interval: 10s
retries: 5
start_period: 20s
timeout: 5s
gateway:
image: crpi-km68smz26eegv27m.cn-shenzhen.personal.cr.aliyuncs.com/qihang-open/gateway
container_name: qihangerp-gateway
environment:
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_DISCOVERY_USERNAME: "nacos"
SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD: "nacos"
ports:
- "8088:8088"
depends_on:
- redis
- nacos
restart: always
networks:
- my-network
sys-api:
image: crpi-km68smz26eegv27m.cn-shenzhen.personal.cr.aliyuncs.com/qihang-open/sys-api
container_name: qihangerp-sys-api
environment:
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_DISCOVERY_USERNAME: "nacos"
SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD: "nacos"
SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_CONFIG_USERNAME: "nacos"
SPRING_CLOUD_NACOS_CONFIG_PASSWORD: "nacos"
spring.data.redis.host: "redis"
spring.data.redis.port: 6379
spring.data.redis.password: ""
spring.profiles.active: dev
depends_on:
- redis
- nacos
restart: always
networks:
- my-network
oms-api:
image: crpi-km68smz26eegv27m.cn-shenzhen.personal.cr.aliyuncs.com/qihang-open/oms-api
container_name: qihangerp-oms-api
environment:
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_DISCOVERY_USERNAME: "nacos"
SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD: "nacos"
SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_CONFIG_USERNAME: "nacos"
SPRING_CLOUD_NACOS_CONFIG_PASSWORD: "nacos"
spring.data.redis.host: "redis"
spring.data.redis.port: 6379
spring.data.redis.password: ""
spring.profiles.active: dev
depends_on:
- redis
- nacos
restart: always
networks:
- my-network
erp-api:
image: crpi-km68smz26eegv27m.cn-shenzhen.personal.cr.aliyuncs.com/qihang-open/erp-api
container_name: qihangerp-erp-api
environment:
SPRING_CLOUD_NACOS_DISCOVERY_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_DISCOVERY_USERNAME: "nacos"
SPRING_CLOUD_NACOS_DISCOVERY_PASSWORD: "nacos"
SPRING_CLOUD_NACOS_CONFIG_SERVER-ADDR: "nacos:8848"
SPRING_CLOUD_NACOS_CONFIG_USERNAME: "nacos"
SPRING_CLOUD_NACOS_CONFIG_PASSWORD: "nacos"
spring.data.redis.host: "redis"
spring.data.redis.port: 6379
spring.data.redis.password: ""
spring.profiles.active: dev
depends_on:
- redis
- nacos
restart: always
networks:
- my-network
vue:
image: crpi-km68smz26eegv27m.cn-shenzhen.personal.cr.aliyuncs.com/qihang-open/vue-erp
container_name: qihangerp-vue
ports:
- "80:80" # 映射88端口
- "443:443" # 映射88端口
# volumes:
# - /opt/qihangerp/nginx/dist:/usr/share/nginx/html # HTML 文件目录
# - /opt/qihangerp/nginx/nginx_conf/nginx:/etc/nginx # Nginx 配置目录
# - /opt/qihangerp/nginx/nginx_logs:/var/log/nginx # Nginx 日志目录
networks:
- my-network # 使用 my-network 网络
restart: always # 容器崩溃后自动重启
volumes:
redis_data: # 定义持久化数据卷
nacos_data:
networks:
my-network:
driver: bridge

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

18
vue/Dockerfile Normal file
View File

@ -0,0 +1,18 @@
# 使用官方 Nginx 镜像作为基础镜像
FROM nginx:alpine
# COPY ./cert /etc/nginx/cert
# 删除默认的 Nginx 配置文件
RUN rm /etc/nginx/conf.d/default.conf
# 将自定义的 nginx.conf 配置文件复制到容器中的 Nginx 配置目录
COPY ./nginx.conf /etc/nginx/nginx.conf
# 将 Vue 项目的构建文件复制到 Nginx 的 html 目录
COPY ./dist /usr/share/nginx/html
# 暴露容器的端口80 是 Nginx 默认的 HTTP 端口)
EXPOSE 88
# 启动 Nginx 服务
CMD ["nginx", "-g", "daemon off;"]

91
vue/nginx.conf Normal file
View File

@ -0,0 +1,91 @@
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types; # 引入 MIME 类型
default_type application/octet-stream; # 默认 MIME 类型
server {
listen 80;
server_name erp.benshutech.com;
# 设置 Vue 应用的静态文件路径
root /usr/share/nginx/html;
index index.html;
# 默认 location 配置
location / {
try_files $uri $uri/ /index.html;
}
# 处理 /prod-api/ 的代理请求
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# --- 新增 SSE 关键配置 ---
proxy_http_version 1.1; # 必须使用 HTTP/1.1
proxy_buffering off; # 关闭缓冲,确保数据实时发送
proxy_read_timeout 1800s; # 增加读取超时时间 (例如 30 分钟)
proxy_send_timeout 1800s; # 增加发送超时时间 (例如 30 分钟)
proxy_connect_timeout 60s; # 连接超时时间
# --- 结束新增 ---
#proxy_pass http://10.0.2.22:8088/;
proxy_pass http://172.17.62.227:8088/;
}
}
server {
listen 443 ssl;
server_name erp.benshutech.com;
#charset koi8-r;
#access_log logs/host.access.log main;/opt/cert
ssl_certificate /etc/nginx/cert/benshutech.com.pem;
ssl_certificate_key /etc/nginx/cert/benshutech.com.key;
ssl_session_timeout 5m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
# 处理 /prod-api/ 的代理请求
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# --- 新增 SSE 关键配置 ---
proxy_http_version 1.1; # 必须使用 HTTP/1.1
proxy_buffering off; # 关闭缓冲,确保数据实时发送
proxy_read_timeout 1800s; # 增加读取超时时间 (例如 30 分钟)
proxy_send_timeout 1800s; # 增加发送超时时间 (例如 30 分钟)
proxy_connect_timeout 60s; # 连接超时时间
# --- 结束新增 ---
proxy_pass http://172.17.62.227:8088/;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}