首页 新闻 会员 周边

Dockerfile的问题

0
悬赏园豆:50 [已解决问题] 解决于 2018-06-29 17:54

我在局域网内搭建了一个nuget服务器http://nuget.xxxx.com/nuget,构建docker镜像的时候怎么能够找到这个nuget服务器?

这是我的Dockerfile文件

FROM microsoft/dotnet:2.1-sdk as builder
WORKDIR /source
copy . . 
run cd src/CommentService.Web
run dotnet restore
run dotnet publish -c release -o /publish/

from microsoft/dotnet:2.1-sdk
workdir /app
copy --from=builder /publish .
ENTRYPOINT ["dotnet","CommentService.Web.dll"]

尝试过这样的修改

FROM microsoft/dotnet:2.1-sdk as builder
WORKDIR /source
copy . . 
VOLUME  /etc/hosts:/etc/hosts
..........

以及

FROM microsoft/dotnet:2.1-sdk as builder
WORKDIR /source
copy . . 
run  echo "192.168.1.x nuget.xxxx.com" >>/etc/hosts
..........

结果都是没有用

Bluto的主页 Bluto | 菜鸟二级 | 园豆:317
提问于:2018-06-29 17:00
< >
分享
最佳答案
0

通过 Dockerfile 在生成镜像时是无法实现的,详见 Docker 网络之理解 bridge 驱动

实际上容器中的 /etc 目录下有 3 个文件是在容器启动后被虚拟文件覆盖掉的,分别是 /etc/hostname、/etc/hosts 和 /etc/resolv.conf

只能在启动容器时实现,通过 docker run --add-host 或者 docker-composeextra_hosts 配置

收获园豆:50
dudu | 高人七级 |园豆:30994 | 2018-06-29 17:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册