繁体   English   中英

如何在jenkins管道中编辑Docker镜像中的/ etc / host

[英]How to edit /etc/host in Docker image from jenkins pipeline

我有问题,不知道如何解决这个问题。 我有一个jenkis管道,它创建一个Azure容器实例,其中一些图像被推送(在同一管道上)到Azure注册表。 现在我需要在注册表上推送一个docker容器映像,但需要对/ etc / hosts文件进行修改。 我尝试过:

RUN  sed -i '$ a 172.x.x.x  host.domain.com ' /etc/hosts

RUN echo >> 172.x.x.x  host.domain.com /etc/hosts

在pipleine我得到错误:

1msed: can't move '/etc/hostsJCkFPo' to '/etc/hosts': Resource busy

我是红色的,我不能在构建阶段手动做这样的事情,所以我搜索,我调查,使用“

--add主机

“你可以实现这一点。我不知道如何在jenkins文件中执行此操作。我尝试使用以下jenkins文件(仅添加docker build的一部分):

 def imageNametom = 'repo.azurecr.io/container-tomcat'
 def imageNameTagged = imageNametom + ':' + env.BUILD_NUMBER

 docker.build("${imageNameTagged}" , "--add-host=host.domain.com:172.x.x.x").

但我得到以下错误:

docker build -t repo.azurecr.io/container-tomcat:6 --add-host=host.domain.com:172.x.x.x
invalid argument "host.domain.com" for "--add-host" flag: bad format for add-host: "host.domain.com"

如何将其添加到/ etc / hosts文件中? 所以从该图像创建的容器都有这个主机文件。

谢谢

在docker image构建阶段您将不具有IP和域名您只能在从docker镜像创建容器时获取此信息

因此,我的建议是使用Azure解决方案模板,它允许您在创建映像后调用脚本

这是一个根据docker镜像修改/etc/hosts后提供VM的示例

https://github.com/Azure/azure-quickstart-templates/blob/f605b4b13a6d372d9f40142323e128b5e5e58440/slurm/azuredeploy.sh

您可以在此处找到更多Azure解决方案模板的示例https://github.com/Azure/azure-quickstart-templates

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM