我有 2 个图像,我想通过 compose 的默认桥接网络相互通信,但我也希望它们能够访问我的主机网络。
为了允许图像在 compose 的默认桥接网络中相互通信,我不需要执行任何操作:
version: '3.4'
services:
hello:
image: hello-world
world:
image: hello-world
Run Code Online (Sandbox Code Playgroud)
通过上述规范,服务可以通过使用 DNS 名称来hello引用服务worldworld
如果我希望 hello 服务能够与我的主机网络交互,我可以添加network_mode: host到规范中。
version: '3.4'
services:
hello:
image: hello-world
network_mode: host
world:
image: hello-world
Run Code Online (Sandbox Code Playgroud)
这允许hello服务访问我的主机网络,但无法再world通过 compose 的内置 DNS 进行访问。我怎样才能同时实现这两个目标?
我尝试创建自定义网络,但自定义网络无法使用主机驱动程序,并且我无法network_mode与以下命令结合使用networks:
这不起作用:
version: '3.4'
services:
hello:
image: hello-world
network_mode: host
networks:
- bridge
world:
image: hello-world
networks:
- bridge
networks:
test:
driver: bridge
Run Code Online (Sandbox Code Playgroud)
$ docker-compose up …Run Code Online (Sandbox Code Playgroud) 我正在使用具有拉取请求构建和分支构建的 Travis CI。我确信这对于其他 CI 服务是常见的。
如果我有一个develop分支和一个feature/A分支,那么当我从feature/Atarget打开拉取请求时develop,拉取请求构建会运行我的单元测试。
假设我的单元测试通过,我合并拉取请求和分支构建触发器,因为对develop. 此分支构建构建我的容器并将其部署到开发环境。
我应该在我的分支构建上运行与拉取请求构建期间相同的单元测试套件,还是假设因为拉取请求测试通过,分支构建也会安全?运行这些测试会浪费周期吗?