我正在尝试在Google Compute VM上设置一个nginx代理。因此,我希望我的域名(www.example.com)转到正确的容器。但由于某些原因,它只有在我把端口号放在地址栏(www.example.com:3001)中时才起作用,这完全违背了目的。
谁能让我知道我做错了什么?
nginx-proxy docker-compose.yml
version: '3'
services:
nginx-proxy:
image: jwilder/nginx-proxy
ports:
- 80:80
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
- backend
networks:
backend:
driver: bridgeapp docker-compose.yml
version: '3'
services:
api:
image: api-image:latest
build:
context: ./
dockerfile: Dockerfile
ports:
- 3000:8080
networks:
- backend
public:
image: app-image:latest
build:
context: ./frontend
dockerfile: Dockerfile
ports:
- 3001:8081
networks:
- backend
environment:
- VIRTUAL_HOST=www.example.com
- VIRTUAL_PORT=3001
networks:
backend:
driver: bridge所以当我放入www.example.com:3001时,上面的代码正确地代理到了public容器。
想法??谢谢!
发布于 2019-01-09 20:20:49
您已在2个文件中定义了此块。
networks:
backend:
driver: bridge看似是同一个网络,但事实并非如此。如果您使用docker network ls命令,您将看到2个网络,其项目名称作为前缀。
将其更改为:
networks:
backend:
external: true并使用docker network create backend手动创建网络
https://stackoverflow.com/questions/54109903
复制相似问题