在运行docker-compose时,我得到了python:无法打开文件'manage.py':没有这样的文件或目录
这是我的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构build并获取以下输出:
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 ,返回错误:
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中删除卷并再次构build。
version: '2.1' services: users-service: container_name: users-service build: . ports: - 5001:5000 # expose ports - HOST:CONTAINER
在Ubuntu上docer-compose有一个问题。 它无法安装音量。 而且我可以看到你想装载。 到/ usr / src / app
您需要在更新代码后再次构build图像。