docker composer到本地主机的网关
我在本地机器上运行redis隧道。我希望我的容器连接到我的本地机器,然后连接到redis隧道,以便我的redis凭据保留在本地 这是我的docker-compose.ymldocker composer到本地主机的网关,docker,docker-compose,Docker,Docker Compose,我在本地机器上运行redis隧道。我希望我的容器连接到我的本地机器,然后连接到redis隧道,以便我的redis凭据保留在本地 这是我的docker-compose.yml version: '3.8' services: front: container_name: front_fr build: context: docker volumes: - ".:/var/www/front:rw,cached"
version: '3.8'
services:
front:
container_name: front_fr
build:
context: docker
volumes:
- ".:/var/www/front:rw,cached"
environment:
- APPLICATION_ENV=dev
ports:
- "443:443"
- "6379:6379"
extra_hosts:
- "redis.XXXX.amazonaws.com:172.23.0.1"
这个很好用。但我必须在容器上安装iproute 2,并运行ip route以获取路由(172.23.0.1),然后将其添加到额外的_主机:
docker exec e09f640bfd0d apt-get install -y iproute2
docker exec e09f640bfd0d ip route
是否有一种方法可以自动添加网关,而无需手动执行这些步骤
谢谢。只需使用所有docker compose命令创建一个shell脚本即可
docker-compose build
docker-compose run front apt-get install -y iproute2
docker-compose run front ip route
docker-compose up
如果您拥有此服务的docker文件,则可以将这些步骤添加到单独的脚本中,并将其设置为入口点(参考)
如果您愿意覆盖此图像的现有入口点,也可以在docker-compose.yml(参考)中完成此操作。听起来不错。但是如何在docker compose中动态更改网关的IP呢。yml文件?如何将值172.23.0.1动态替换为“ip路由”将返回的值?extra_hosts只是向容器的/etc/hosts文件添加条目的一种方便方法。因为您是在容器运行后获取IP地址的;更新docker compose没有意义。yml。您可以使用ENTRYPOINT脚本直接将IP条目添加到容器的/etc/hosts文件中。谢谢。我在这里找到了一些关于将额外配置添加到/etc/hosts的信息。我最后把它添加到docker-compose.yml:command:bash-c'echo
iproute show default | grep-E-o”([0-9]{1,3}[\.]){3}[0-9]{1,3}“
“example.com”>/tmp/hosts\u extra&&cat/tmp/hosts\u extra>/etc/hosts的注释与第一个答案相同。听起来不错。但是如何在docker compose中动态更改网关的IP呢。yml文件?如何将值172.23.0.1动态替换为“ip路由”将返回的值?