当我试图运行我的对接者时,我遇到了这个错误
=>错误6/9复制.npmrc .npmrc
0.0s =>错误7/9添加package.json /User/gs/Documents/Dev/DockerDi 0.0s
version: "3"
services:
gs-service:
build:
context: .
dockerfile: ./gs/Dockerfile
ports:
- 8081:8081
ui-service:
build:
context: .
dockerfile: ./ui/Dockerfile
ports:
- 8083:8083以下是正在失败的Dockerfile的详细信息。这是一个子目录。例如,/user/gs/dockerexperiment/ui
/user/gs/dockerexperiment/user/gs/dockerexperiment/ui我知道班里的路出了问题,但我很难弄清楚我错过了什么。
发布于 2021-08-08 00:35:26
Dockerfile在构建上下文中操作;这是您在docker-compose.yml文件中命名为docker-compose.yml的目录树的副本(或者,如果您直接使用docker build,则它的目录参数)。
build:
context: .在Dockerfile中,任何COPY (或ADD)指令都被解释为相对于此目录树。(如果它看起来是一个绝对路径,那么它仍然相对于这个目录;任何..路径步骤都会被忽略。)
COPY package*.json ./
# copies ./package.json, relative to the context directory但是,您可以在评论中说明,这里实际上并不是您的文件所在。相对于docker-compose.yml文件,您需要./ui/package.json;Dockerfile也位于同一个子目录中。
您显示的Dockerfile似乎不需要来自其直接树之外的任何内容,因此解决这一问题的最简单方法是将ui目录设置为构建上下文:
version: '3.8'
services:
ui:
build: ./ui
# Same as
# build:
# context: ./ui
# dockerfile: Dockerfile # relative to the context directory
ports:
- 8085:8085在Dockerfile中,您可以删除重复的ADD package.json行,并且应该删除危险的RUN npm set config行。您还可以设置一个更短的WORKDIR,类似于/app是典型的。
如果不想更改docker-compose.yml文件,其他可能的更改是调整Dockerfile,使其COPY路径相对于(父)构建上下文目录。
COPY ui/package*.json .这样做的好处是,如果需要,可以从其他应用程序访问文件,或者可以将共享文件存储在父目录中。
FROM node:14
# Add the public TLS key for our internal repository
# (from the parent directory)
COPY repository.example.com.crt /usr/local/share/ca-certificates
RUN update-ca-certificates
WORKDIR /app
# Also get our local npm configuration (from the parent directory)
COPY .npmrc .
# Install the ./ui application
COPY ui/package*.json .
RUN npm ci
COPY ui/src ./src
EXPOSE 8085
CMD ["npm", "start"]https://stackoverflow.com/questions/68696615
复制相似问题