Skip to content

docker network https 配置

  1. 手动建一个外部网络
  2. 两个 Compose 文件都把服务加到这个网络;
  3. Caddyfile 里直接写 reverse_proxy http://ruoyi-nginx

步骤 1:创建外部网络(一次性)

bash
docker network create web

步骤 2:改造 Caddy 的 Compose 文件

yaml
# /home/docker/caddy/docker-compose.yml
services:
  gateway:
    image: caddy:2-alpine
    container_name: caddy-gateway
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /home/docker/caddy/Caddyfile:/etc/caddy/Caddyfile:ro
      - /home/docker/caddy/data:/data
      - /home/docker/caddy/config:/config
    networks:
      - web          # 关键:加入外部网络

networks:
  web:
    external: true   # 使用刚才建好的外部网络

步骤 3:改造 ruoyi-nginx 的 Compose 文件

yaml
# 任意目录下的 docker-compose.yml
services:
  ruoyi-nginx:
    container_name: ruoyi-nginx
    image: ruoyi-nginx
    expose:          # 只暴露端口给网络,不映射到宿主机
      - "80"
    volumes:
      - ./html/dist:/home/ruoyi/projects/ruoyi-ui
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/logs:/var/log/nginx
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - ruoyi-server
    networks:
      - web           # 同一个外部网络

networks:
  web:
    external: true

步骤 4:Caddyfile 写容器名即可

json
jk.xxx.com {
    reverse_proxy http://ruoyi-nginx
}

步骤 5:重新拉起两个栈

bash
# 先停旧的
docker compose -f /home/docker/caddy/docker-compose.yml dow