簡體   English   中英

Dockerfile:無法打開文件'./main.py':[Errno 2]沒有這樣的文件或目錄

[英]Dockerfile: can't open file './main.py': [Errno 2] No such file or directory

我收到此錯誤: python: can't open file '/src/main.py': [Errno 2] No such file or directory

FROM python:3.9-slim AS compile

RUN python -m venv /opt/venv

ENV PATH="/opt/venv/bin:$PATH"

WORKDIR /my-app

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

ADD src/ ./src
RUN pip install .

FROM python:3.9-slim AS build

COPY --from=compile/opt/venv /opt/venv

ENV PATH="/opt/venv/bin:$PATH"

CMD ["python", "/src/main.py"]

我也試過這個,但它仍然給我同樣類型的關於找不到 main.py 的錯誤:我試過./src/main/py、/src/main.py、/src/main.py、./main .py。 我嘗試了一切,我開始懷疑錯誤在其他地方

/src/main.py是系統根目錄的絕對路徑。

為了與您當前目錄相關,請使用./src/main.py

我會簡化你的 docker 文件如下:

    # base image
    FROM amazonlinux:1
    
    # Set the working directory
    WORKDIR /app
    
    # Copy the current directory contents into the container at /app
    COPY . /app
    
    # Install requirements
    RUN pip install -r requirements.txt
    
    # Define environment variable
    ENV PYTHONPATH "${PYTHONPATH}:/app"

    # Run main.py when the container launches
    ENTRYPOINT ["python", "-u", "src/main.py"]

問題是您有多階段構建(2x FROM)並且您只將它們添加到第一階段。


FROM python:3.9-slim AS compile

[..]

ADD src/ ./src
ADD setup.py .
RUN pip install .

FROM python:3.9-slim AS build

[..]

您可以在 2. 階段使用第二個COPY --from=語句來解決此問題。 此外,您的 CMD 是錯誤的。 要么給它完整路徑,要么用 a 開始一個相對路徑。 目錄/文件名( /my-app/src/main.py./src/main.pysrc/main.py )。

FROM python:3.9-slim AS compile

RUN python -m venv /opt/venv

ENV PATH="/opt/venv/bin:$PATH"

WORKDIR /my-app

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

ADD src/ ./src
ADD setup.py .
RUN pip install .

FROM python:3.9-slim AS build

COPY --from=compile/opt/venv /opt/venv

COPY --from=compile/my-app /my-app                  # ADDED

WORKDIR /my-app                                     # ADDED

ENV PATH="/opt/venv/bin:$PATH"

CMD ["python", "/my-app/src/main.py"]                      # FIXED

最后,您只是在丟棄的階段設置工作目錄,但這僅在您沒有為 cmd 提供完整路徑或者您需要特定的工作目錄時才有意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM