gpt4 book ai didi

docker-compose - 容器在构建过程中没有互联网

转载 作者:行者123 更新时间:2023-12-05 06:11:27 25 4
gpt4 key购买 nike

我已经检查了很多关于堆栈和 super 用户的类似问题,但找不到我的确切案例,所以我决定问这个问题。

我的问题是我的容器仅在构建过程中无法访问互联网。这意味着如果我从我的 Dockerfile 中注释掉任何需要命令的互联网并将执行命令设置为 tail -f/dev/null 然后转到容器 shell,那么我确实可以访问互联网。

这是我失败的设置:

我的 docker-compose.yml:

version: '3.7'
services:
admin-panel:
network_mode: host
container_name: react-admin
build:
context: Admin-Panel
volumes:
- ./Admin-Panel:/app
- /app/node_modules
ports:
- '5000:5000'
stdin_open: true
tty: true

和 Dockerfile:

FROM node:13.12.0-alpine
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json yarn.lock ./
RUN yarn --pure-lockfile --silent
COPY . ./
RUN yarn build
CMD ["serve" "-s" "build"]

这将失败,输出如下:

docker-compose up --build
Building admin-panel
Step 1/9 : FROM node:13.12.0-alpine
---> 483343d6c5f5
Step 2/9 : WORKDIR /app
---> Using cache
---> 5cd6ae583081
Step 3/9 : ENV PATH /app/node_modules/.bin:$PATH
---> Using cache
---> 77db61e579e4
Step 4/9 : COPY package.json yarn.lock ./
---> Using cache
---> 52e5361fb0fa
Step 5/9 : RUN yarn --pure-lockfile --silent
---> Running in 803c8d85c8e5
error An unexpected error occurred: "https://registry.yarnpkg.com/clsx/-/clsx-1.1.0.tgz: getaddrinfo EAI_AGAIN registry.yarnpkg.com".

表示无法访问互联网。

但是当我注释掉 yarn 命令并在构建完成后手动执行它们并且我在容器的 shell 中时,一切正常。

工作设置:

与此 Dockerfile 相同的 docker-compose:

FROM node:13.12.0-alpine
WORKDIR /app
ENV PATH /app/node_modules/.bin:$PATH
COPY package.json yarn.lock ./
# RUN yarn --pure-lockfile --silent
COPY . ./
# RUN yarn build
# CMD ["serve" "-s" "build"]
CMD ["tail", "-f", "/dev/null"]

并安装依赖项并从容器 shell 手动运行应用程序。

知道为什么这种没有互联网的事情只发生在构建过程中吗?

P.S:如果我从我的 docker-compose.yml 中删除 network_mode: host,即使在构建之后我也不会有互联网。

最佳答案

我的问题通过添加 network: host to build 部分得到解决。

仍然不知道为什么我的 docker bridge 网络不工作。

version: '3.7'
services:
admin-panel:
network_mode: host
container_name: react-admin
build:
context: Admin-Panel
# the line below fixed it
network: host
volumes:
- ./Admin-Panel:/app
- /app/node_modules
ports:
- '5000:5000'
stdin_open: true
tty: true

关于docker-compose - 容器在构建过程中没有互联网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63972884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com