Docker构建React Client容器时yarn install遇npm registry错误求助
Docker容器构建问题:Client容器Yarn安装依赖失败
我部署了三个Docker容器:一个用于MySQL的db容器、一个Node.js的server容器,以及一个基于create-react-app的client容器。错误出现在client容器中。
此前该环境一直正常运行,直到我尝试为生产环境配置独立的Nginx容器(之后已删除所有相关配置代码,但错误仍持续存在)。
错误信息如下:
Step 9/12 : RUN yarn install ---> Running in 45145c591167 yarn install v1.22.19 info No lockfile found. [1/4] Resolving packages... warning @svgr/plugin-svgo > svgo > stable@0.1.8: Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility info There appears to be trouble with the npm registry (returned undefined). Retrying...
该错误会持续重试直至超时。
已尝试的解决方法:
- 执行
docker system prune -a和docker volume prune后重新运行docker-compose up,问题依旧; - 删除本地的
node_modules和yarn.lock文件,重新构建仍无效; - 在本地(非Docker环境)新建目录,执行
yarn init并添加相同依赖到package.json,可以正常安装依赖,因此问题应出在Docker容器环境中。
相关配置代码:
docker-compose.yml
version: '3.7' services: db: container_name: db image: mysql command: --default-authentication-plugin=mysql_native_password restart: always ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: database_development MYSQL_PASSWORD: root cap_add: - SYS_NICE client: container_name: client build: ./client ports: - 3000:3000 volumes: - ./client:/app - /app/node_modules environment: - NODE_ENV=development - CHOKIDAR_USEPOLLING=true server: container_name: server build: ./server ports: - 8080:8080 - 4242:4242 volumes: - ./server:/app - /app/node_modules depends_on: - db environment: - NODE_ENV=development
client Dockerfile
FROM node:16-alpine RUN apk update && apk upgrade RUN mkdir /app WORKDIR /app ARG NODE_ENV ENV NODE_ENV ${NODE_ENV} COPY package.json /app RUN yarn install COPY . . EXPOSE 3000 CMD [ "yarn", "start" ]
内容的提问来源于stack exchange,提问作者i suck at programming
相关产品推荐
相关产品推荐

