asa*_*asa 6 node.js npm docker docker-compose
我使用的是 Ubuntu 20.04。我正在尝试使用 docker-compose 构建图像。
这是我的docker-compose文件
version: "3.8"
services:
web:
build: ./frontend
network_mode: "host"
ports:
- 3000:3000
api:
build: ./backend
network_mode: "host"
ports:
- 3001:3001
environment:
DB_URL: mongodb://db/foo-app
db:
image: mongo:4.0-xenial
ports:
- 27017:27017
volumes:
- foo-app-data:/data/db
volumes:
foo-app-data:
Run Code Online (Sandbox Code Playgroud)
下面是我的两个Dockerfile文件:
# ./backend file
FROM node:16.3.0-alpine3.13
RUN addgroup app && adduser -S -G app app
WORKDIR /app
USER root
COPY package*.json ./
# --- debug try
RUN npm cache clean --force
RUN npm config set registry https://registry.npmjs.org/
RUN npm install -g @angular/cli
# ---
RUN npm install
COPY . .
RUN chown app:app /app
USER app
EXPOSE 3001
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
# ./frontend file
FROM node:16.3.0-alpine3.13
RUN addgroup app && adduser -S -G app app
WORKDIR /app
USER root
COPY package*.json ./
# --- debug try
RUN npm cache clean --force
RUN npm config set registry https://registry.npmjs.org/
# ---
RUN npm install
COPY . .
RUN chown app:app /app
USER app
EXPOSE 3000
CMD ["npm", "start"]
Run Code Online (Sandbox Code Playgroud)
当我运行时docker-compose build,抛出以下错误:
Step 8/14 : RUN npm install -g @angular/cli
---> Running in ce221adb18f6
npm ERR! code EAI_AGAIN
npm ERR! syscall getaddrinfo
npm ERR! errno EAI_AGAIN
npm ERR! request to https://registry.npmjs.org/@angular%2fcli failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-06-13T10_19_13_600Z-debug.log
The command '/bin/sh -c npm install -g @angular/cli' returned a non-zero code: 1
ERROR: Service 'web' failed to build : Build failed
Run Code Online (Sandbox Code Playgroud)
当我手动构建每个 docker 文件时,我遇到了相同的错误,直到我使用--network=host. 这意味着,当我使用 构建图像时docker build --network=host,它工作得很好。所以我尝试添加network_mode= "host"到我的 docker-compose 文件中,但它没有解决问题。
看在上帝的份上,在将此问题标记为重复之前先阅读以下内容:
ping registry.npmjs.org,连接工作正常。docker-compose up,这将引发与我在这里完全相同的错误。npm cache clean --force和npm config set registry https://registry.npmjs.org/。什么都不起作用。如果将network_mode与主机值一起使用,则不能将其与端口映射混合使用: https: //docs.docker.com/compose/compose-file/compose-file-v3/#ports
然后,或者将网络模式更改为桥接,或者删除每个服务的端口映射。
| 归档时间: |
|
| 查看次数: |
4608 次 |
| 最近记录: |