【发布时间】:2018-11-06 11:11:36
【问题描述】:
谈到 Docker,我完全是个新手。我试图用一个虚拟项目来理解它。
我有一个 django 项目,我的 Dockerfile 在 Django 项目的根文件夹中。我的 docker-compose.yml 文件位于包含 django 项目文件夹和其他配置文件的顶级根文件夹下。
我的docker-compose.yml
version: '3'
services:
db:
image: postgres
container_name: dummy_project_postgres
volumes:
- ./data/db:/var/lib/postgresql/data
event_planner:
build: ./dummy_project
container_name: dummy_project
volumes:
- .:/web
ports:
- "8000:8000"
depends_on:
- db
links:
- db:postgres
还有我的Dockerfile
FROM python:3
ENV PYTHONUNBUFFERED 1
RUN mkdir /web
WORKDIR /web
ADD requirements.txt /web/
RUN pip install -r requirements.txt
ADD . /web/
我正在尝试运行以下命令
# stop and remove the existing containers
docker-compose stop
docker-compose rm -f
# up and run the container
docker-compose build
docker-compose up -d
docker-compose exec dummy_project bash
当我执行docker-compose up -d 时,我看到了这个错误。
docker-compose up -d
dummy_project_postgres is up-to-date
Starting dummy_project ... done
warning: could not open directory 'data/db/': Permission denied
我知道之前有人问过这个问题,但我并没有完全得到我需要的解决方案,现在我被困了好几个小时。
编辑:我拥有顶层文件夹下所有文件夹的所有权限
EDIT2:sudo docker-compose up -d也会导致同样的错误。
【问题讨论】:
-
sudo docker-compose up -d? -
我做了,但是,权限被拒绝。 @PetarP
-
在pycharm上,data/db文件夹上有一个小锁图标
-
你启用 SELinux 了吗?尝试像这样挂载卷:
./data/db:/var/lib/postgresql/data:z或./data/db:/var/lib/postgresql/data:Zz 和 Z 卷标志是修改 selinux 标签的选项。 -
检查docker是否有sudo权限,先尝试在终端播放
标签: django docker docker-compose