在 docker-compose 构建期间无法访问包服务器(错误:未找到网桥)

问题描述 投票:0回答:1

构建和启动我的 docker-compose 项目失败并出现错误:

ERROR: failed to solve: process "/bin/sh -c npm install" did not complete successfully: network bridge not found

我的

docker-compose.yml
文件仅包含:

version: '3'
services:
  myapp:
    build:
      context: .
      dockerfile: Dockerfile
    restart: always
    volumes:
      - ./data:/app/data
    ports:
      - 3000:3000

出于安全原因,

/etc/docker/daemon.json
默认情况下不启用网桥:

{
  "ipv6": true,
  "iptables": true,
  "bridge": "none",
  "bip": "",
  "default-address-pools": [
    ...
  ],
  ...

将以下行添加到 docker-compose.yml 并不能解决问题:

    network_mode: host

正确的做法是什么?

docker networking docker-compose
1个回答
0
投票

为了在构建过程中启用网桥,您必须在

network: host
的构建部分中使用
docker-compose.yml
:

version: '3'
services:
  myapp:
    build:
      context: .
      dockerfile: Dockerfile
      network: host
    restart: always
    volumes:
      - ./data:/app/data
    ports:
      - 3000:3000

要在容器执行期间也使桥可用,您可以在

network_mode: host
部分中使用
myapp
。像这样:

version: '3'
services:
  myapp:
    build:
      context: .
      dockerfile: Dockerfile
      network: host
    restart: always
    volumes:
      - ./data:/app/data
    ports:
      - 3000:3000
    network_mode: host

可以在 Compose 构建规范服务顶级元素文档中找到更多参考。

© www.soinside.com 2019 - 2024. All rights reserved.