我正在关注testdriven.io上的烧瓶/码头指南。在第三部分Docker Config的第一部分中我正在按照说明将项目目录作为卷装入Docker容器中进行开发。不幸的是,按照教程中的说明不能使用docker-compose正确安装卷。相反,容器内的目录是空的。码头 - 撰写量不正确
以下是针对相关容器的Dockerfile。
FROM python:3.6.1
# set working directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# add requirements (to leverage Docker cache)
ADD ./requirements.txt /usr/src/app/requirements.txt
# install requirements
RUN pip install -r requirements.txt
# add app
ADD . /usr/src/app
# run server
CMD python manage.py runserver -h 0.0.0.0
这是泊坞窗,compose.yml文件
version: '2.1'
services:
users-service:
container_name: users-service
build: .
volumes:
- '.:/usr/src/app'
ports:
- 5001:5000 # expose ports - HOST:CONTAINER
有问题的目录是/ usr/src目录/应用的用户服务容器内的目录。当我这样做:
>> docker-compose build
>> docker-compose up -d
>> docker-compose run users-service bash
当我ls
容器我在正确的目录(/ usr/src目录/应用程序)内,但该目录是空的。这也会导致CMD失败,因为它找不到位于项目目录根目录下的manage.py文件。
我已经看到其他帖子在堆栈溢出与类似的标题,不幸的是没有解决方案已经能够解决我的问题。我试图改变本地音量路径从相对到绝对的结果没有任何不同。感谢您提前帮助任何能够帮助他人的人。
编辑:
已经运行docker inspect
在容器上,下面是Mounts
和Config
下找到的信息 - Volume
:
"Mounts": [
{
"Type": "bind",
"Source": "/home/jonathan/projects/flask-microservices-users",
"Destination": "/usr/src/app",
"Mode": "rw",
"RW": true,
"Propagation": "rprivate"
}
],
...
"Config": {
...
"Image": "flaskmicroservicesusers_users-service",
"Volumes": {
"/usr/src/app": {}
},
"WorkingDir": "/usr/src/app",
...
什么在目录中你安装? '.'它不是空的吗? – user3012759
我正在安装的目录是该项目的根目录。 'me @ ubuntu:〜/ project $ ls Dockerfile manage.py README.md docker-compose.yml 项目需求。txt' – Jonnyishman
您可以对您的用户服务容器进行码头检查并检查它有哪些容量? – user3012759