我正在尝试构建一个将在离线系统上使用的 npm 存储库。我的想法是构建一个现成的 docker 容器,它已经包含给定项目所需的所有包 - 下载包将基于 package.json 文件。
为了实现我的想法,我需要在一个容器上运行服务器 verdaccio,然后另一个容器将运行 npm install 命令,这将生成带有准备好的 npm 包的适当文件。
但是,我无法应付等待第一个容器的启动。到目前为止,我已尝试使用 wait-for.sh 和 wait-for.sh 脚本(https://docs.docker.com/compose/startup-order/),但它们无法连接到给定的地址.
PS 我正在为 Windows 使用 Docker
码头工人-compose.yml
version: '3.1'
services:
listen:
build: listen
image: listen-img
container_name: listen
environment:
- VERDACCIO_PORT=4873
ports:
- "4873:4873"
download:
build: download
image: download-img
container_name: download
depends_on:
- listen
networks:
node-network:
driver: bridge
服务器 dockerfile
FROM verdaccio/verdaccio:4
'npm install trigger' 泊坞窗文件
FROM node:15.3.0-alpine3.10
WORKDIR /usr/src/cached-npm
COPY package.json .
COPY wait-for.sh .
COPY /config/htpasswd /verdaccio/conf/htpasswd
USER root
RUN npm set registry http://host.docker.internal:4873
RUN chmod +x /usr/src/cached-npm/wait-for.sh
RUN /usr/src/cached-npm/wait-for.sh host.docker.internal:4873 -- echo "Listen is up"
RUN npm install
我的解决方案中是否缺少共享端口,或者是否有其他问题导致我的方法失败?