docker composer到本地主机的网关



我正在本地机器上运行一个redis隧道。我希望我的容器连接到我的本地机器,然后连接到redis隧道,这样我的redis凭据就可以保存在本地。

这是我的docker-compose.yml

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路由以获得路由(172.23.0.1(并将其添加到extra_hosts:

docker exec e09f640bfd0d apt-get install -y iproute2                                                                                             
docker exec e09f640bfd0d ip route   

有没有一种方法可以自动添加网关,而不必手动执行这些步骤?

谢谢。

如果您拥有此服务的docker文件,您可以将这些步骤添加到一个单独的脚本中,并将其设置为ENTRYPOINT(参考。https://docs.docker.com/engine/reference/builder/#entrypoint)。

如果您愿意覆盖此图像的现有入口点,也可以在docker-compose.yml中完成(参考。https://docs.docker.com/compose/compose-file/#entrypoint)

只需使用所有docker compose命令创建一个shell脚本

docker-compose build
docker-compose run front apt-get install -y iproute2  
docker-compose run front ip route 
docker-compose up

最新更新