Я учусь работать с Docker, пытаюсь попрактиковаться с книгой «Микросервисы с Docker, Flask и React».
Во-первых, я добавил себя в группу docker
с usermod
для выполнения всех операций без sudo.Это сработало, но когда я пытаюсь запустить успешно собранный образ на докер-машине, он говорит, что нет такого файла для запуска.
У меня есть такой тестовый проект:
testdriven-app:
|--users-service:
| |--project:
| | |--__init__.py
| | |--config.py
| |--Dockerfile-dev
| |--manage.py
| |--requirements.txt
|--docker-compose-dev.yml
Dockerfile-dev:
FROM python:3.5.3
# set working directory
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
# add requirements
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-dev.yml:
version: '3.3'
services:
users-service:
container_name: users-service
build:
context: ./users-service
dockerfile: Dockerfile-dev
volumes:
- './users-service:/usr/src/app'
ports:
- "5001:5000"
[kuimov@ms testdriven-app [testdriven-dev]]$ docker-compose -f docker-compose-dev.yml build
Building users-service
Step 1/7 : FROM python:3.5.3
---> 56b15234ac1d
Step 2/7 : RUN mkdir -p /usr/src/app
---> Using cache
---> 4caa9194035d
Step 3/7 : WORKDIR /usr/src/app
---> Using cache
---> 3c347fd7446b
Step 4/7 : ADD ./requirements.txt /usr/src/app/requirements.txt
---> Using cache
---> 417256150884
Step 5/7 : RUN pip install -r requirements.txt
---> Using cache
---> 5df631263c71
Step 6/7 : ADD . /usr/src/app
---> f97cde6e7e00
Step 7/7 : CMD python manage.py runserver -h 0.0.0.0
---> Running in 70ea95e36c1e
Removing intermediate container 70ea95e36c1e
---> f3d548a00de1
Successfully built f3d548a00de1
Successfully tagged testdriven-app_users-service:latest
[kuimov@ms testdriven-app [testdriven-dev]]$ docker-compose -f docker-compose-dev.yml up
Recreating users-service ... done
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
Я подозреваю, что существует проблема с разрешениями, потому что тот же контейнер, созданный с помощью sudo, успешно запускается, номне довольно сложно это выяснить.