这是我的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
这是我的docker-compose.yml:
version: '2.1'
services:
users-service:
container_name: users-service
build: .
volumes:
- .:/usr/src/app
ports:
- 5001:5000 # expose ports - HOST:CONTAINER
这是我的项目目录的结构(我运行我的docker命令):
├── docker-compose.yml
├── Dockerfile
├── env
│ ├── bin
│ ├── include
│ ├── lib
│ ├── lib64 -> lib
│ ├── pip-selfcheck.json
│ ├── pyvenv.cfg
│ └── share
├── manage.py
├── project
│ ├── config.py
│ ├── __init__.py
│ └── __pycache__
└── requirements.txt
首先,我运行docker-compose构建并获得以下输出:
Building users-service
Step 1/7 : FROM python:3.6.1
---> 74145628c331
Step 2/7 : RUN mkdir -p /usr/src/app
---> Using cache
---> 8b73b9540da2
Step 3/7 : WORKDIR /usr/src/app
---> Using cache
---> 28d3452f6021
Step 4/7 : ADD ./requirements.txt /usr/src/app/requirements.txt
---> Using cache
---> e92c334820c2
Step 5/7 : RUN pip install -r requirements.txt
---> Using cache
---> db7ea8211cd1
Step 6/7 : ADD . /usr/src/app
---> 472c303e4297
Removing intermediate container 7ee1b497cde4
Step 7/7 : CMD python manage.py runserver -h 0.0.0.0
---> Running in 31ae97876314
---> 42c79e68f692
Removing intermediate container 31ae97876314
Successfully built 42c79e68f692
Successfully tagged flaskmicroservicesusers_users-service:latest
然后我运行docker-compose up返回错误:
Recreating users-service
Attaching to users-service
users-service | python: can't open file 'manage.py': [Errno 2] No such file or directory
users-service exited with code 2
我在这里缺少什么?
最佳答案 从docker-compose.yml中删除卷并再次构建.
version: '2.1'
services:
users-service:
container_name: users-service
build: .
ports:
- 5001:5000 # expose ports - HOST:CONTAINER
在ubuntu上有docer-compose的问题.它无法装入音量.而且我可以看到你想要装载.到/usr/src / app
您需要在更新代码后再次构建映像.