init: UserBaseService (backend + deploy + scripts)
ci-userbase-service / build-and-push (push) Successful in 40s

This commit is contained in:
chenxing
2026-08-10 14:50:22 +08:00
commit 4ec19486e0
234 changed files with 15604 additions and 0 deletions
+74
View File
@@ -0,0 +1,74 @@
# UserBase 编排:后端(Spring Boot 8060) + 前端(nginx 80)
# 两者都挂在 infra-infra-net,由 caddy 按服务名反代到 www.yunhaixingtong.com/userbase
# 启动:cd /opt/docker/userbase && docker compose -f docker-compose.userbase.yml up -d
services:
userbase-app:
image: ${ACR_REGISTRY:-registry.cn-hangzhou.aliyuncs.com}/${ACR_NAMESPACE:-damaomi_docker}/yunhai:${APP_VERSION:-userbase-v1.0}
container_name: userbase-app
restart: unless-stopped
networks:
- infra-infra-net
# SSO 回调后容器内要做 CAS serviceValidate 回调 sso.yunhaixingtong.com,
# 该虚拟主机由宿主机 caddy 按 vhost 路由,但容器内无 DNS 记录会 UnknownHostException。
# host-gateway 指向宿主机网关(caddy 监听 :80/:443 全接口),无需硬编码 IP;
# 旧版 Docker(<20.10)不支持 host-gateway,可改为宿主机桥接网关 IP,如 172.17.0.1。
extra_hosts:
- "sso.yunhaixingtong.com:host-gateway"
environment:
TZ: Asia/Shanghai
# 配置中心:由 bootstrap.yml 中 spring.cloud.nacos.config 在 bootstrap 阶段自动拉取
# 容器内通过 infra-infra-net 解析内网别名 nacos:8848(宿主机 shell 无法直接解析),
# 公网域名 nacos.yunhaixingtong.com 仅用于控制台管理,生产容器走内网。
NACOS_ADDR: nacos:8848
# Nacos 已开启鉴权,config 客户端需携带账号(与旧 run-app.sh 的 nacos/nacos 一致)
SPRING_CLOUD_NACOS_USERNAME: nacos
SPRING_CLOUD_NACOS_PASSWORD: nacos
SPRING_CLOUD_NACOS_CONFIG_USERNAME: nacos
SPRING_CLOUD_NACOS_CONFIG_PASSWORD: nacos
JAVA_OPTS: "-Xms512m -Xmx1024m"
volumes:
- ./upload-data:/data/upload
expose:
- "8060"
healthcheck:
# 只要能返回 HTTP 状态码就认为进程已起(业务接口普遍需要鉴权,不能用 -f)
test: ["CMD-SHELL", "curl -s -o /dev/null -w '%{http_code}' http://localhost:8060/userbase/ | grep -qE '^[234]'"]
interval: 30s
timeout: 10s
retries: 5
start_period: 90s
deploy:
resources:
limits:
cpus: '1.5'
memory: 1536M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
userbase-front:
image: ${ACR_REGISTRY:-registry.cn-hangzhou.aliyuncs.com}/${ACR_NAMESPACE:-damaomi_docker}/yunhai:${FRONT_VERSION:-userbase-front-v1.0}
container_name: userbase-front
restart: unless-stopped
networks:
- infra-infra-net
environment:
TZ: Asia/Shanghai
expose:
- "80"
deploy:
resources:
limits:
cpus: '0.5'
memory: 256M
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"
networks:
infra-infra-net:
external: true