简体   繁体   English

Docker 组合找不到名为 Dockerfile

[英]Docker compose can't find named Dockerfile

my project structure is defined like this (names are just for example):我的项目结构是这样定义的(名称只是示例):

- docker-compose.yml
- env_files
  - foo.env
- dockerfiles
  -service_1
    -foo.Dockerfile
    -requirements.txt
- code_folder_1
  - ...
- code_folder_2
  - ...

In my docker-compose:在我的 docker-compose 中:

some_service:
    container_name: foo_name
    build:
      context: .
      dockerfile: ./dockerfiles/service_1/foo.Dockerfile
    ports:
      - 80:80
    env_file:
      - ./env_files/foo.env

Dockerfile: Dockerfile:

FROM python:3.8-slim

WORKDIR /some_work_dir
COPY ./dockerfiles/intermediary/requirements.txt .

RUN pip3 install --upgrade pip==21.3.1 && \
   pip3 install -r requirements.txt

COPY . . 

EXPOSE 80

And after i run docker compose build in the directory where compose file is located I get this error:在我在撰写文件所在的目录中运行docker compose build后,我收到此错误:

failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount4158855397/Dockerfile: no such file or directory

I really do not understand why this is happening.我真的不明白为什么会这样。 I need to set context:.我需要设置context:. because I have multiple folders that I need to COPY inside foo.Dockerfile因为我有多个文件夹需要在 foo.Dockerfile 中复制

Same error was replicated in macOS Monterey 12.5.1 and Ubuntu 18.04.4 LTS (Bionic Beaver)在 macOS Monterey 12.5.1 和 Ubuntu 18.04.4 LTS(仿生海狸)中复制了相同的错误

I solved a similar issue by writing a script like the following:我通过编写如下脚本解决了类似的问题:

#!/bin/bash

SCRIPT_PATH=$(readlink -f $(dirname $0))
SCRIPT_PATH=${SCRIPT_PATH} docker-compose -f ${SCRIPT_PATH}/docker-compose.yaml up -d --build $@

And changing the yaml into:并将 yaml 更改为:

some_service:
    container_name: foo_name
    build:
      context: .
      dockerfile: ${SCRIPT_PATH}/dockerfiles/service_1/foo.Dockerfile
    ports:
      - 80:80
    env_file:
      - ${SCRIPT_PATH}/env_files/foo.env

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM