对于docker来说相当新,但我有2个项目 - 项目-a和项目-b,我想在本地使用docker开发,并使用nginx-proxy容器在它们之间进行路由。
到目前为止,我有:
1)创建一个名为' my-network'的新docker网络。在桥接模式下。 2)启动nginx-proxy容器,并配置dnsmasq以路由' .dev'域到个别容器(这一切都很好) 3)使用以下docker-compose.yml文件启动项目-a
version: '3.2'
services:
web:
image: brettt89/silverstripe-web
working_dir: /var/www
restart: unless-stopped
volumes:
- .:/var/www/html
environment:
- VIRTUAL_HOST=project-a.dev
db:
image: mysql
volumes:
- db-data:/var/lib/mysql
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: password
volumes:
db-data:
networks:
default:
external:
name: my-network
这一切都按预期的方式使用project-a.dev到此容器的nginx-proxy路由请求。 MySQL查询按预期工作。
但是,一旦我使用相同的docker-compose文件启动project-b(除了将VIRTUAL_HOST env变量更改为project-b.dev),问题就会开始。我可以成功导航到project-b.dev,但是我在页面加载和刷新时会出现间歇性的数据库连接错误 - 同样的错误也开始在project-a.dev上发生
有没有人有任何想法我做错了什么?
答案 0 :(得分:0)
当您使用相同的docker compose时,您有2个数据库容器,每个项目1个。但他们使用相同的音量。我认为这可能是一个问题。尝试修改巡视项目B的卷名(例如db-data-b)。
*编辑好答案:* 尽量不要使用桥接网络或检查容器以避免IP冲突。