重新创建容器时的 Bitbucket 管道 docker 卷权限
Bitbucket pipeline docker volume permissions at recreating containers
我已经使用 docker 容器部署了 django 应用程序。该应用程序的源代码位于 Bitbucket 存储库中。现在我想为 master
分支设置管道,目的是在合并时自动部署。管道脚本的问题部分如下:
docker-compose up --build -d
以上行结果显示错误:
Permission denied: '/path/to/docker/volume/pgdb'
我的 docker-compose 与 postgres 相关的文件部分如下:
postgres:
container_name: arw-postgres
image: postgres:11
ports:
- 5432:5432
volumes:
- ./pgdb:/var/lib/postgresql/data
env_file: .env
上面指定的 docker-compose
命令 运行 通常具有 sudo
特权。实际上,我可以使用 root 用户连接到远程主机,并且可以 运行 这个命令。但我不想公开我的根用户的凭据。我如何在没有 sudo
权限的情况下重新创建我的 docker 容器?
这里的问题是 .dockerignore
文件不存在。我只是在 Dockerfile
的同一级别添加了内容为 pgdb
的 .dockerignore
文件。此文件避免将受保护的 pgdb
文件夹复制到 docker 容器,因此不会发生权限错误。
我已经使用 docker 容器部署了 django 应用程序。该应用程序的源代码位于 Bitbucket 存储库中。现在我想为 master
分支设置管道,目的是在合并时自动部署。管道脚本的问题部分如下:
docker-compose up --build -d
以上行结果显示错误:
Permission denied: '/path/to/docker/volume/pgdb'
我的 docker-compose 与 postgres 相关的文件部分如下:
postgres:
container_name: arw-postgres
image: postgres:11
ports:
- 5432:5432
volumes:
- ./pgdb:/var/lib/postgresql/data
env_file: .env
上面指定的 docker-compose
命令 运行 通常具有 sudo
特权。实际上,我可以使用 root 用户连接到远程主机,并且可以 运行 这个命令。但我不想公开我的根用户的凭据。我如何在没有 sudo
权限的情况下重新创建我的 docker 容器?
这里的问题是 .dockerignore
文件不存在。我只是在 Dockerfile
的同一级别添加了内容为 pgdb
的 .dockerignore
文件。此文件避免将受保护的 pgdb
文件夹复制到 docker 容器,因此不会发生权限错误。