簡體   English   中英

Docker 組合找不到名為 Dockerfile

[英]Docker compose can't find named Dockerfile

我的項目結構是這樣定義的(名稱只是示例):

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

在我的 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:

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

在我在撰寫文件所在的目錄中運行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

我真的不明白為什么會這樣。 我需要設置context:. 因為我有多個文件夾需要在 foo.Dockerfile 中復制

在 macOS Monterey 12.5.1 和 Ubuntu 18.04.4 LTS(仿生海狸)中復制了相同的錯誤

我通過編寫如下腳本解決了類似的問題:

#!/bin/bash

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

並將 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