Files
website/deploy/docker-compose.yml
2026-11-04 13:15:34 +08:00

39 lines
1.5 KiB
YAML

# 开源项目门户部署编排
#
# docker compose -f deploy/docker-compose.yml up -d --build
#
# 形态切换(站点资源前缀):
# SITE_BASE=/ 独立端口形态,站点独占根路径(默认,推荐用于过渡)
# SITE_BASE=/www/ 子路径形态,挂在已有网关的 /www/ 路径下
#
# 独立端口形态(过渡,等域名):
# PORTAL_BIND_ADDR=0.0.0.0 docker compose -f deploy/docker-compose.yml up -d --build
# → http://<主机>:8020/
#
# 独立域名形态:
# SITE_BASE=/ docker compose -f deploy/docker-compose.yml up -d --build
# → 由域名 vhost 指向本容器
services:
portal:
build:
context: ..
dockerfile: Dockerfile
args:
SITE_BASE: '${SITE_BASE:-/}'
# 基础镜像源。默认官方 docker.io;拉不动时改成代理源,
# 例:docker.m.daocloud.io/library(实测 192.168.101.164 直连 docker.io 超时,该代理可用)
BASE_REGISTRY: '${BASE_REGISTRY:-docker.io/library}'
image: snowgoat-open-portal:local
container_name: snowgoat-open-portal
restart: unless-stopped
ports:
# 默认只绑本机回环;要让路由器 NAT 转发进来,必须显式改成 0.0.0.0
# 或本机内网地址(例:PORTAL_BIND_ADDR=0.0.0.0)。
- "${PORTAL_BIND_ADDR:-127.0.0.1}:${PORTAL_PORT:-8020}:80"
healthcheck:
test: ["CMD", "wget", "--quiet", "--output-document=/dev/null", "http://127.0.0.1${SITE_BASE:-/}"]
interval: 30s
timeout: 5s
retries: 3
start_period: 10s