docker-compose 在创建 docker 镜像时找不到文件

时间:2021-07-30 16:22:40

标签: python docker docker-compose

我有这样的项目结构

proj
|
|----------tests
|           |-----integration
|                       |------------docker-compose.yml
|---------Dockerfile 
|
|---------requirements.txt
|
|---------setup.py

Dockerfile

...
RUN pip install -r requirements.txt
...

docker-compose.yml 文件是

version: "3.4"
services:
  proj-test:
    build:
      context: ..
      network: host
      dockerfile: ../Dockerfile
    depends_on:
      - postgres_db
    environment:
      PG_UNITTEST_DB: "postgresql://testuser:testpassword@postgres_db/testdb"
  postgres_db:
    image:  postgis/postgis
    expose:
      - "5432"
    environment:
      POSTGRES_PASSWORD: testpassword
      POSTGRES_USER: testuser
      POSTGRES_DB: testdb

我使用这个命令构建 docker compose

$proj  docker-compose -f tests/integration/docker-compose.yml build

这会导致错误

ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'

因为它正在 'requirements.txt' 文件夹中寻找 tests。我应该如何告诉它查看根?使用 docker volume 可以实现吗?我在处理 docker 卷方面没有太多经验。

1 个答案:

答案 0 :(得分:0)

在您的 Dockerfile 中,您应该先复制 requirements.txt 文件,然后运行安装要求。

COPY requirements.txt .
RUN pip install -r requirements.txt