用Docker反向代理nginx

我有一个Docker容器的网站。 所以我使用nginx反向代理泊坞窗让我们encryption我按照这个教程

但是我的网站不能使用https。

有我的docker撰写文件:

services: nginx: image: pixelfordinner/nginx container_name: pixelcloud-nginx_proxy-nginx restart: always ports: - "80:80" - "443:443" volumes: - "./volumes/conf.d:/etc/nginx/conf.d:ro" - "./volumes/vhost.d:/etc/nginx/vhost.d:ro" - "./volumes/certs:/etc/nginx/certs:ro" - "/usr/share/nginx/html" nginx-proxy: image: jwilder/docker-gen container_name: nginx-proxy depends_on: - nginx volumes_from: - nginx volumes: - "/var/run/docker.sock:/tmp/docker.sock:ro" - "./data/templates:/etc/docker-gen/templates:ro" - "./volumes/conf.d:/etc/nginx/conf.d:rw" entrypoint: /usr/local/bin/docker-gen -notify-sighup pixelcloud-nginx_proxy-nginx -watch -wait 5s:30s /etc/docker-gen/templates/nginx.tmpl /etc/nginx/conf.d/default.conf letsencrypt-nginx-proxy: restart: always image: jrcs/letsencrypt-nginx-proxy-companion container_name: ssl depends_on: - nginx - nginx-proxy volumes_from: - nginx volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./volumes/vhost.d:/etc/nginx/vhost.d:rw" - "./volumes/certs:/etc/nginx/certs:rw" environment: - "NGINX_DOCKER_GEN_CONTAINER=pixelcloud-nginx_proxy-docker_gen" wordpress: image: wordpress environment: - VIRTUAL_HOST=foo.example.com - LETSENCRYPT_HOST=foo.example.com - LETSENCRYPT_EMAIL= mail@example.com 

我从github下载了nginx.tmpl文件,并将其复制到/data/templates/nginx.tmpl

我不理解它不起作用

感谢帮助!

更新:我设法设置HTTPS,而不是WordPress上的HTTP。 但是我有一个docker撰写的Gitlab实例。 在login页面,https正在工作,但是当我login并进入项目主页时,有https,但连接不安全。 我想这个: https : //gitlab.exemple.com

它看起来像缺lessjrcs/letsencrypt-nginx-proxy-companion所需的jrcs/letsencrypt-nginx-proxy-companion jwilder/docker-gen容器。

请参阅文档: https : //github.com/JrCs/docker-letsencrypt-nginx-proxy-companion#separate-containers-recommended-method

看例子: https : //github.com/fatk/docker-letsencrypt-nginx-proxy-companion-examples/blob/master/docker-compose/v2/simple-site/docker-compose.yml

这意味着您将不得不添加一个nginx.tmpl文件并将其挂载到您的jwilder/docker-gen容器中。 您还需要共享来自nginx-proxy容器的/etc/nginx/vhost.d卷。

更新:运行pixelcloud-nginx_proxy-docker_gen docker-gen映像的服务的container_name应该是pixelcloud-nginx_proxy-docker_gen因为它需要匹配NGINX_DOCKER_GEN_CONTAINER环境variables。 所以你应该有:

  nginx-proxy: image: jwilder/docker-gen container_name: pixelcloud-nginx_proxy-docker_gen