gpt4 book ai didi

docker - Docker不在目录中搜索文件

转载 作者:行者123 更新时间:2023-12-02 20:35:48 25 4
gpt4 key购买 nike

我创建了一个docker文件。

FROM node:13.6.0-alpine3.10

WORKDIR /src
RUN apk add --no-cache bash

COPY ./package.json .
COPY ./package-lock.json .

RUN npm install

COPY . .

EXPOSE 8081

CMD npm run start:dev

我的项目的结构。
.
└── my-app
└── docker-compose.yml
└── ...
└── server
└── docker
└── Dockerfile
└── src
└── ....
├── package.json
├── package-lock.json
└── ...

构建容器时,出现错误。

ERROR: Service 'server' failed to build: COPY failed: stat /var/lib/docker/tmp/docker-builder791989542/package.json: no such file or directory



我了解我的文件位于其他目录中。我试图解决这样的问题。
COPY ./../package.json .
COPY ./../package-lock.json .

但是我也有一个错误

ERROR: Service 'server' failed to build: COPY failed: Forbidden path outside the build context: ../package.json ()



如何告诉docker,以便他不在dockerfile文件所在的docker文件夹中查找文件,而是在我的package-lock.json和package.json文件所在的src文件夹中查找文件

我创建了一个docker-compose.yml文件。
version: "3.3"

services:

server:
container_name: server
command:
- npm
- run
- start:dev
build:
context: ./server/docker
dockerfile: dockerfile
environment:
PORT: 8081
ports:
- 8081:8081
restart: on-failure
volumes:
- ./server:/src/

最佳答案

您不能这样做,因为构建的第一步是构建上下文目录。您需要更改上下文。

直接从docker docs,

COPY obeys the following rules:

  • The path must be inside the context of the build; you cannot COPY ../something /something, because the first step of a docker build is to send the context directory (and subdirectories) to the docker daemon.

关于docker - Docker不在目录中搜索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59728901/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com