我需要在Docker构建期间引用主机或主机网络,在Dockerfile中,我该怎么做?我想这样做,克隆一些git repos,或scp一些文件来设置图像。
很容易克隆github repo,因为docker会为此解析dns。但是,我的主机网络没有dns条目可用于构建的docker镜像。
事实上,我甚至不知道主机的IP地址是什么,更不用说设置dns了。
答案 0 :(得分:4)
你想做的事情违背了Dockerfile的想法。
Dockerfile的目的是提供一个"描述"在具有可重复性保证的同时获得图像。这就是为什么你没有在Dockerfile中拥有任何特定主机的原因,因此可以在任何地方构建具有相同结果的主机。
如果您需要与主机进行更密切的互动,则意味着您的结果对此主机来说很紧张,您应该在运行时进行。查看CMD
或ENTRYPOINT
以使容器在启动时执行某些操作。
答案 1 :(得分:2)
截至docker api 1.25,你现在可以做到:
<div class="carousel-inner" role="listbox">
<div class="carousel-item active">
<div class="img1">
</div>
<!--<img class=" imgCstm " src="images/home/bng_00.jpg" alt="First slide">-->
</div>
</div>
<style>
.carousel-inner {
height: 100vh;
<! -- custom hight -->
}
.carousel-item {
height: 100%;
}
.img1 {
background-image: url('../images/home/bng_00.jpg');
height: 100%;
width: 100%;
background-repeat: no-repeat;
background-attachment: fixed !important;
background-size: cover !important;
background-position: center !important;
}
</style>
这将使您在构建期间访问主机网络。
答案 2 :(得分:0)
你不了解Docker主机似乎很奇怪。我甚至无法理解这种可能性。
只需在构建期间传入主机信息即可。
docker run -e DOCKER_HOST=1.2.3.4 busybox env
或者,您将不得不使用某种发现系统,例如DNS,etcd,zookeeper或consul。