我在局域网内搭建了一个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
..........
结果都是没有用
通过 Dockerfile 在生成镜像时是无法实现的,详见 Docker 网络之理解 bridge 驱动
实际上容器中的 /etc 目录下有 3 个文件是在容器启动后被虚拟文件覆盖掉的,分别是 /etc/hostname、/etc/hosts 和 /etc/resolv.conf
只能在启动容器时实现,通过 docker run --add-host
或者 docker-compose
的 extra_hosts
配置