jenkins-pipeline-files/compose-file/docker-compose-test.yml
2025-09-21 18:50:16 +08:00

121 lines
4.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Docker Compose 文件版本定义
# 3.7 版本支持丰富的部署配置和资源限制功能
version: '3.7'
# 服务定义块,包含所有需要部署的容器服务
services:
# 后端服务 - 小蚂蚁管理系统后端
xiaomayi-admin:
# 镜像地址从私有Harbor仓库拉取镜像
# ${VERSION:-latest} 表示使用VERSION环境变量如果未设置则使用latest标签
image: 192.168.10.102:8001/xiaomayi/xiaomayi-admin:${VERSION:-latest}
# 容器名称:指定容器的名称,便于管理和识别
container_name: xiaomayi-admin
# 重启策略always表示容器退出时总是自动重启
# 确保服务在异常退出后能够自动恢复
restart: always
# 网络模式host表示使用主机网络模式
# 容器直接使用宿主机的网络栈,性能更好,端口直接暴露在主机上
network_mode: host
# 端口映射将容器内的8081端口映射到主机的8081端口
# 格式:主机端口:容器端口
ports:
- 8081:8081
# 数据卷挂载:将主机文件或目录挂载到容器内
volumes:
# 挂载主机hosts文件到容器内只读模式
# 用于容器内的域名解析,与主机保持一致
- /etc/hosts:/etc/hosts:ro
# 挂载上传目录将当前目录下的upload目录挂载到容器的/opt/apps/upload
# 用于持久化存储上传的文件
- $PWD/upload:/opt/apps/upload
# 挂载包目录将当前目录下的package目录挂载到容器的/opt/apps/package
# 用于存储应用程序包或其他资源文件
- $PWD/package:/opt/apps/package
# 部署配置定义资源限制和预留Docker Swarm模式下的配置
# 在单机Docker Compose中也会被部分支持
deploy:
resources:
# 资源限制:容器最多可以使用的资源量
limits:
cpus: '2' # 最多使用2个CPU核心
memory: 1.5G # 最多使用1.5GB内存
# 资源预留:保证容器至少获得的资源量
reservations:
cpus: '0.25' # 至少保留0.25个CPU核心
memory: 500M # 至少保留500MB内存
# 前端服务 - 小蚂蚁管理系统前端
xiaomayi-web2:
# 镜像地址前端服务的Docker镜像
image: 192.168.10.102:8001/xiaomayi/xiaomayi-web2:${VERSION:-latest}
# 容器名称:前端服务容器名称
container_name: xiaomayi-web2
# 重启策略:总是自动重启
restart: always
# 网络模式:使用主机网络模式
network_mode: host
# 端口映射前端服务监听8082端口
ports:
- 8082:8082
# 数据卷挂载
volumes:
# 挂载主机hosts文件只读
- /etc/hosts:/etc/hosts:ro
# 挂载上传目录(读写模式)
# :rw 表示读写权限(默认模式,显式声明更清晰)
- $PWD/upload:/opt/apps/upload:rw
# 挂载包目录(读写模式)
- $PWD/package:/opt/apps/package:rw
# 环境变量:设置容器内的环境变量
environment:
# 语言设置设置为英文UTF-8编码
- LANG=en_US.UTF-8
# 本地化设置全部使用英文UTF-8
- LC_ALL=en_US.UTF-8
# Java虚拟机参数设置文件编码为UTF-8
# 确保中文等特殊字符正确处理
- JAVA_OPTS=-Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8
# 部署配置:资源限制和预留
deploy:
resources:
# 资源上限
limits:
cpus: '2' # 最多2个CPU核心
memory: 1.5G # 最多1.5GB内存
# 资源保障
reservations:
cpus: '0.25' # 至少0.25个CPU核心
memory: 500M # 至少500MB内存
# 注意:该配置文件中使用了以下特殊配置:
# 1. network_mode: host - 主机网络模式,容器直接使用主机网络
# 2. ${VERSION:-latest} - 环境变量替换,支持动态版本控制
# 3. deploy.resources - Docker Swarm模式的资源管理在单机模式下也有部分效果
# 4. 多目录挂载 - 实现数据持久化和主机-容器文件共享
# 5. 环境变量设置 - 确保应用程序的编码和语言环境正确
# 使用说明:
# 1. 部署命令VERSION=1.2.0 docker-compose up -d
# 2. 查看日志docker-compose logs -f
# 3. 停止服务docker-compose down
# 4. 更新服务VERSION=1.2.1 docker-compose up -d