构建和启动我的 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
正确的做法是什么?
为了在构建过程中启用网桥,您必须在
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 构建规范 和 服务顶级元素文档中找到更多参考。