docker - 将当前本地 ip 传递给 docker-compose 中的 dnsmasq 命令
问题描述
设置
我有一个包含多个容器的设置,使用 dnsmasq 作为我的虚拟主机的名称服务器。我希望容器可以在我的本地网络中访问,因此我需要将所有请求解析为运行容器的机器的当前本地 ip(此处192.168.178.21
)
version: "3"
services:
dnsmasq:
image: andyshinn/dnsmasq
ports:
- 53:53/tcp
- 53:53/udp
cap_add:
- NET_ADMIN
command: [
"--log-queries",
"--log-facility=-",
"--address=/.test/192.168.178.21"
]
apache:
...
gulp:
...
nginx-proxy:
...
问题
当我启动 docker-compose 时,我想做的是动态地“添加”当前的 ip,在概念上就像一个变量,它获取当前的 ip:
...
"--address=/.test/current_local_ip"
...
这样,我可以在网络中的每台开发机器上使用此设置启动一个项目,并使其他人可以访问它,而无需手动更改 docker-compose 文件中的内容。感谢您的建议
解决方案
您可以使用 .env 文件并添加
env_file=.env
environment:
- IP_ADDR
并将命令修改为
"--address=/.test/$IP_ADDR"
或者
映射conf文件,如
volumes:
- .docker/dnsmasq.conf:/etc/dnsmasq.conf