我的docker-compose.yml
看起来像这样:
version: "3.2"
services:
web:
build: /Users/marcin/Docker/definitions/php-nginx/php-7.2-ubuntu
volumes:
- /some_dir/:/some_dir
working_dir: /usr/share/nginx/html/
links:
- db
container_name: name.web
hostname: name.local
expose:
- "10015"
ports:
- "313:22"
- "8313:80"
- "18313:443"
environment:
- VIRTUAL_HOST=name.local,name-be.local,name-com.local,subdomain.name-com.local
- CERT_NAME=default
- HTTPS_METHOD=noredirect
networks:
- default
- proxy_default
db:
build: /Users/marcin/Docker/definitions/mysql/8.0
environment:
- MYSQL_ROOT_PASSWORD=pass
- MYSQL_DATABASE=
- MYSQL_USER=
- MYSQL_PASSWORD=
expose:
- 3306
volumes:
- /Users/marcin/Docker/projects/name.local/mysql/data/:/var/lib/mysql/
- /Users/marcin/Docker/projects/name.local/mysql/conf.d/:/etc/mysql/conf.d/source
- /Users/marcin/Docker/projects/name.local/mysql/log/:/var/log/mysql/
ports:
- "33313:3306"
container_name: name.db
hostname: name.local
networks:
proxy_default:
external:
name: proxy_default
我使用name.local
和subdomain.name-com.local
域名访问此网站(在网络浏览器中) - 没有任何问题。
然而今天我必须进行一些测试,我发现在跑步时:
wget http://name.local
我可以毫无问题地获取网站内容,但在运行时
此主机无法解析。
如何让两个域都将流量引导到同一主机?
我目前所做的是查看/etc/hosts
并添加了我在domain.local
下面找到的相同IP
hostname:name.local
这样的行:
extra_hosts:
- "subdomain.name-com.local:192.168.0.3"
- "subdomain.name-com.local:172.19.0.3"
现在似乎工作正常。但是,我不太喜欢这个解决方案(尽管它似乎没有任何问题),因为我必须在这里硬编码一些IP地址,我不确定它们是否会改变。
有可能以某种方式在这里添加主机名的别名而不是指定一些魔术IP地址吗?
答案 0 :(得分:0)
为了定义主机名别名,您应该使用network aliases功能:
ALIASES此服务的别名(替代主机名) 网络。同一网络上的其他容器可以使用 服务名称或此别名连接到其中一个服务 容器
使用您的示例,它可能看起来像:
>>> bool_str = 'False'
>>> b = True if bool_str.lower() == 'true' else False
>>> b
False
>>> bool_str = 'true'
>>> b = True if bool_str.lower() == 'true' else False
>>> b
True