我无法使用以下Dockerfile构建我的图像:
FROM ubuntu
RUN apt-get -y update && apt-get -y install \
nodejs npm ssh
# cache npm install when package.json hasn't changed
WORKDIR /tmp
ADD package.json package.json
RUN npm install
RUN npm install -g pm2
RUN mkdir /sparrow
RUN cp -a /tmp/node_modules /sparrow
WORKDIR /sparrow
ADD . /sparrow/
RUN npm run build
# ssh keys
WORKDIR /root
RUN mv /sparrow/.ssh /root/
# upload js and css
WORKDIR /sparrow/build
# UPLOAD TO S3!
# go back to /sparrow
WORKDIR /sparrow
ENV NODE_ENV production
ENV NODE_PATH "./src"
EXPOSE 8000
CMD ["pm2", "start", "./bin/server.js", "--no-daemon", "-i", "0"]
似乎无法连接到互联网以安装ubuntu软件包并且无法使用:
Err http://archive.ubuntu.com trusty InRelease
Err http://archive.ubuntu.com trusty-updates InRelease
Err http://archive.ubuntu.com trusty-security InRelease
Err http://archive.ubuntu.com trusty Release.gpg
Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-updates Release.gpg
Could not resolve 'archive.ubuntu.com'
Err http://archive.ubuntu.com trusty-security Release.gpg
Could not resolve 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/InRelease
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-updates/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/trusty-security/Release.gpg Could not resolve 'archive.ubuntu.com'
W: Some index files failed to download. They have been ignored, or old ones used instead.
Reading package lists...
Building dependency tree...
Reading state information...
E: Unable to locate package nodejs
E: Unable to locate package npm
有关如何解决或测试此问题的任何建议?在El Capitan OSX上运行
谢谢!
答案 0 :(得分:7)
已经回答了这个问题 的 Docker build "Could not resolve 'archive.ubuntu.com'" apt-get fails to install anything 强>
这也会影响yum和其他repo manger,因为我们希望它们可以访问,但容器只有主机允许的网络设置
我喜欢在我的脚本开头添加这些行:
#DNS update: This is needed to run yum and to let the docker build process access the internet.
RUN "sh" "-c" "echo nameserver 8.8.8.8 >> /etc/resolv.conf"
更新: 从下面的评论:当你在网络之间移动时说在wifi网络之间或家庭和工作之间,容器在新网络中不知道它。重启VM或Docker机器是最好的解决方法。
答案 1 :(得分:3)
在Ubuntu主机上为我提供/ etc / default / docker
中的以下条目DOCKER_OPTS="--dns 172.21.32.182"
然后:
sudo systemctl daemon-reload
sudo systemctl restart docker
帮助解决了网络连接问题。当然,你需要用你的dns替换172.21.32.182。
答案 2 :(得分:1)
见https://github.com/boot2docker/boot2docker/issues/451#issuecomment-65432123。可能发生的是您的VirtualBox NAT DNS代理有一个陈旧的路由。您通常必须重新启动VM以使其再次运行。
另一种解决方法是让VM使用您的主机解析器(当DHCP分发新名称服务器时应该更新)。假设您的计算机在Docker Machine下名为dev
,您可以执行以下操作:
docker-machine stop dev
VBoxManage modifyvm dev --natdnsproxy1 off --natdnshostresolver1 off
docker-machine start dev
答案 3 :(得分:0)
由于警告,Docker构建失败
---> [Warning] IPv4 forwarding is disabled. Networking will not work
即使您可以解决archive.ubuntu.com
溶液 -