rob*_*ert 2 node.js docker npm-install
我在 ubuntu 服务器上运行 docker。
这似乎是一个码头工人的问题。从 ubuntu 安装 package.json 工作正常。
npm http request GET https://registry.npmjs.org/express
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
Run Code Online (Sandbox Code Playgroud)
似乎无法访问 npm 注册表。有任何想法吗?
平工作正常!
Dockerfile:
FROM node:4-slim
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app/
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD [ "node", "server.js" ]
Run Code Online (Sandbox Code Playgroud)
构建日志:
Sending build context to Docker daemon 66.05kB
Step 1/8 : FROM node:4-slim
---> cd692e27dc7f
Step 2/8 : RUN mkdir -p /usr/src/app
---> Running in 876d5978bdd7
---> 4bab541344aa
Removing intermediate container 876d5978bdd7
Step 3/8 : WORKDIR /usr/src/app
---> d66516529b5e
Removing intermediate container 6317ee72e20e
Step 4/8 : COPY package.json /usr/src/app/
---> 70483f422380
Removing intermediate container c3781f622ce4
Step 5/8 : RUN npm install
---> Running in 37d8afdf1c21
npm info it worked if it ends with ok
npm info using npm@2.15.11
npm info using node@v4.8.3
npm WARN package.json docker-node-test@1.0.0 No description
npm WARN package.json docker-node-test@1.0.0 No repository field.
npm WARN package.json docker-node-test@1.0.0 No README data
npm info preinstall docker-node-test@1.0.0
npm info attempt registry request try #1 at 10:58:13 AM
npm http request GET https://registry.npmjs.org/express
npm info attempt registry request try #1 at 10:58:13 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info attempt registry request try #2 at 10:59:04 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info attempt registry request try #2 at 10:59:04 AM
npm http request GET https://registry.npmjs.org/express
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info retry will retry, error on last attempt: Error: getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm info attempt registry request try #3 at 11:00:44 AM
npm http request GET https://registry.npmjs.org/mongoose
npm info attempt registry request try #3 at 11:00:44 AM
npm http request GET https://registry.npmjs.org/express
npm ERR! Linux 4.4.0-78-generic
npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
npm ERR! node v4.8.3
npm ERR! npm v2.15.11
npm ERR! code EAI_AGAIN
npm ERR! errno EAI_AGAIN
npm ERR! syscall getaddrinfo
npm ERR! getaddrinfo EAI_AGAIN registry.npmjs.org:443
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR! <https://github.com/npm/npm/issues>
npm ERR! Please include the following file with any support request:
npm ERR! /usr/src/app/npm-debug.log
Run Code Online (Sandbox Code Playgroud)
这也是我在 Docker for Windows 和 GitLab Windows runner 上遇到的一个问题。问题在于docker run网络工作正常并且能够 ping/解析所有域。运行docker buildnpm 时会因 EAI_AGAIN 错误而失败。
解析度
docker build有--network=可用于Docker 构建文档
找到您用于 docker run 或 docker-compose 项目的工作 Docker 网络。
docker network lsdocker build --network=<insert network from above> -f "myproj\Dockerfile" -t app:latest我在这里也面临类似的问题,在上面提到的解决方案之一中,它说要使用以下命令检查可用网络
docker network ls
Run Code Online (Sandbox Code Playgroud)
就我而言,它返回了
NETWORK ID NAME DRIVER SCOPE
2e21805e212e bridge bridge local
034ff467139e host host local
ac0222d91002 none null local
Run Code Online (Sandbox Code Playgroud)
尝试使用所有这三个,因为
sudo docker build --network=034ff467139e -t getting-started ./
Run Code Online (Sandbox Code Playgroud)
完全相同的问题仍然存在,也尝试重新启动 docker 服务,也不起作用
编辑:问题似乎是该命令期望网络的“名称”作为值,而不是运行它的“网络 ID”,这样解决了我的情况下的问题,
docker build --network=host -t getting-started
Run Code Online (Sandbox Code Playgroud)
这是一个连接问题,与您的代码无关,Dockerfile 没有问题。
这可能是间歇性连接问题,也可能是网络防火墙限制,或者其他一些疯狂的 IP 问题。
我看到很多间歇性的连接问题,运行各种工具来打包来自互联网的东西,有时这只是其中之一。
在与上次尝试的网络不同的计算机上进行尝试。
| 归档时间: |
|
| 查看次数: |
8525 次 |
| 最近记录: |