# 开源项目门户部署编排 # # 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