我正在尝试创建2个Docker容器:
我正在使用docker-compose
来构建这些容器。即使我可以使用docker-compose build
命令成功构建它们,但是每当我使用docker-compose logs -f
命令检查日志时,都会收到以下错误消息:
...
db_1 | 2020-08-19 12:39:07.681 UTC [45] LOG: database system was shut down at 2020-08-19 12:39:07 UTC
db_1 | 2020-08-19 12:39:07.686 UTC [1] LOG: database system is ready to accept connections
web_1 | python: can't open file 'manage.py': [Errno 2] No such file or directory
nlp-influencertextanalysis_web_1 exited with code 2
对于db容器,一切似乎都很好,但是由于某些原因,Web容器中的Python无法找到manage.py文件。这是我的文件结构:
这是我的docker-compose.yml
的代码:
version: '3.7'
services:
web:
build: ./services/web
command: python manage.py run -h 0.0.0.0
volumes:
- ./services/web/:/usr/src/app/
ports:
- 5000:5000
env_file:
- ./.env.dev
depends_on:
- db
db:
image: postgres:12-alpine
volumes:
- postgres_data:/var/lib/postgresql/data/
environment:
- POSTGRES_USER=user1
- POSTGRES_PASSWORD=test123
- POSTGRES_DB=influencer_analysis
volumes:
postgres_data:
这是我的Dockerfile
代码:
FROM python:3.8.1-slim-buster AS training
# set work directory
WORKDIR /usr/src/app
# set environment variables
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONUNBUFFERED 1
# install system dependencies
RUN apt-get update && apt-get install -y netcat
RUN pip install --upgrade pip
COPY ./requirements.txt /usr/src/app/requirements.txt
RUN pip install -r requirements.txt
# install NLTK dependencies
RUN python -c "import nltk; nltk.download('punkt')"
# copy project
COPY . /usr/src/app/
WORKDIR /usr/src/app/experiments
RUN python train.py --data data/HaInstagramPostDetails.xlsx --update 1
我应该注意,当使用Docker文件中的/usr/src/app
命令执行train.py
并且RUN
时,我已经打印出manage.py
中的所有罚款。
答案 0 :(得分:1)
我相信问题在于您已经在Docker文件的末尾更改了工作目录。
您可以尝试提供指向manage.py文件或的确切路径。 在指向应用程序目录的末尾的Docker文件中更改工作目录。
答案 1 :(得分:0)
我认为更改工作目录时出现问题。应该是
WORKDIR /usr/src/app/web/experiments
基于文件夹结构。