在不受控制的CI环境中连接到不安全的本地docker注册表



我正在构建一个在docker注册表上执行操作的微服务。

我正在构建的微服务有一个测试,它通过docker Hub中的docker注册表映像启动docker注册表,这样微服务就可以连接到它,设置它,处理它等等

CI中的测试失败:Docker客户端无法连接到测试注册表,因为它不安全。这是在CI中,并且是动态的,每次都有不同的随机ip/端口,docker守护进程被其他并行测试使用。。。因此,让测试编辑全局jsons并重新启动docker守护进程似乎是一个糟糕的解决方案。

有人解决了这个问题吗?如何在CI中测试与docker注册表的集成?我注定要修改全局docker jsons并重新启动/触发重新加载配置吗?

一些细节:构建工具是Bazel,在GCB中运行,因此测试本身在谷歌云上的RBE工作人员中运行,这些工作人员是孤立的,在运行测试时没有网络访问权限,我真的不能配置太多,这不是我的机器,每次测试都是一台氡机等等。

我们最终启动了另一个容器,该容器中有一个docker守护进程(没有安装外部docker守护程序套接字,所以它实际上是另一个dockerdaemon实例(。

我们在空闲时这样做,所以只有在我们知道私有注册表地址并将docker守护进程配置为使用不安全的注册表标志启动之后。

为了让容器进行通信,我们让它们的容器有一个名称并共享一个网络。

最新更新