在多映像、多域docker-compose.yml中使用letsencrypt nginx proxy companion

在多映像、多域docker-compose.yml中使用letsencrypt nginx proxy companion,docker-compose,lets-encrypt,jwilder-nginx-proxy,Docker Compose,Lets Encrypt,Jwilder Nginx Proxy,我想为5个不同的网站提供服务,每个网站在dockerhub上都有自己的docker图像,我想为所有网站提供一个docker-compose.yml文件。 我使用的工具有: - - 我想 1.使用docker compose并为所有网站提供服务-每个网站都有一个唯一的域名 2.使用docker compose和 我已经成功地使用这个docker-compose.yml完成了步骤#1: version: '2' services: nginx-proxy: image: jwilde

我想为5个不同的网站提供服务,每个网站在dockerhub上都有自己的docker图像,我想为所有网站提供一个docker-compose.yml文件。 我使用的工具有: - -

我想 1.使用docker compose并为所有网站提供服务-每个网站都有一个唯一的域名 2.使用docker compose和

我已经成功地使用这个docker-compose.yml完成了步骤#1:

version: '2'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    ports:
      - "80:80"
    volumes:
      - /var/run/docker.sock:/tmp/docker.sock:ro

  changed-site1:
    image: changed-user/changed-site1:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site1.com
  changed-site2:
    image: changed-user/changed-site2:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site2.com
  changed-site3:
    image: changed-user/changed-site3:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site3.com
  changed-site4:
    image: changed-user/changed-site4:v0.1.0
    environment:
      - VIRTUAL_HOST=api.changed-site4.com
  changed-site5:
    image: changed-user/changed-site5:v0.1.0
    environment:
      - VIRTUAL_HOST=changed-site5.com
当我运行“docker compose up”时,一切正常,但没有SSL

我现在正试图完成第2步,我的每个站点都给我一个502错误。而SSL对它们都不起作用。这就是我的docker-compose.yml文件的外观:

version: '2'

services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - conf:/etc/nginx/conf.d
      - vhost:/etc/nginx/vhost.d
      - html:/usr/share/nginx/html
      - dhparam:/etc/nginx/dhparam
      - certs:/etc/nginx/certs:ro
      - /var/run/docker.sock:/tmp/docker.sock:ro
    network_mode: bridge

  letsencrypt:
    image: jrcs/letsencrypt-nginx-proxy-companion
    container_name: nginx-proxy-le
    volumes_from:
      - nginx-proxy

    volumes:
      - certs:/etc/nginx/certs:rw
      - /var/run/docker.sock:/var/run/docker.sock:ro
    network_mode: bridge

    changed-site1:
      image: changed-user/changed-site1:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site1.com
    changed-site2:
      image: changed-user/changed-site2:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site2.com
    changed-site3:
      image: changed-user/changed-site3:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site3.com
    changed-site4:
      image: changed-user/changed-site4:v0.1.0
      environment:
        - VIRTUAL_HOST=api.changed-site4.com
    changed-site5:
      image: changed-user/changed-site5:v0.1.0
      environment:
        - VIRTUAL_HOST=changed-site5.com


你知道我在第二个docker-compose.yml文件(第一个文件正在运行)中做错了什么吗?

我认为首先你更改的站点*:缩进得太远了。它们应该具有与letsencrypt:容器相同的缩进

其次,如果您想使用nginx代理伴侣,那么必须为每个容器提供作为环境变量的LETSENCRYPT_主机,这在他的github()中也有解释

希望这有帮助

问候