我有一个像这样的 Dockerfile,位于
./lang-runner
:
FROM debian:12
COPY . .
还有
.dockerignore
中的 .
,如下所示:
postgres-data
Postgres 数据如下所示:
drwx------ 19 999 root 4096 Oct 12 19:34 postgres-data
它由 root 拥有,因为它是由另一个容器创建的。我无法轻易改变它。
我像这样运行容器:
docker build -f lang-runner/Dockerfile .
但我收到此错误:
$ docker build -f lang-runner/Dockerfile .
[+] Building 16.7s (7/15)
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 910B 0.0s
=> ERROR [internal] load .dockerignore 0.0s
=> => transferring context: 73B 0.0s
=> [internal] load metadata for docker.io/library/debian:12 0.0s
=> ERROR [internal] load build context 0.2s
=> => transferring context: 450.00kB 0.2s
=> [stage-1 1/4] FROM docker.io/library/debian:12bullseye@sha256:8006c4ffd4af7e8de914e921f1dc26d2a0eb8ce95ffd7e5455bb05e84b673555 0.0s
------
> [internal] load .dockerignore:
------
------
> [internal] load build context:
------
error from sender: open postgres-data: permission denied
为什么它试图打开
postgres-data
,即使它在.dockerignore
中。如何在不更改 postgres 文件夹权限的情况下构建容器?
确保您拥有
.dockerignore
的读取权限:
ls -l .dockerignore