我需要創建一個包含一些代碼的 docker 和一個小型燒瓶服務器來公開部分代碼。但我很難讓它適用于我復雜的檔案架構。我的檔案組織為:
main_project
--sub_part_1
--repo_1
--some_code.py
--repo_2
--app.py
--Dockerfile
--repo_3
Pipfile.lock
--sub_part_2
--sub_part_3
--docker-compose.yml
我必須創建一個 Dockerfile 和一個 docker-compose.yml 來運行 app.py (燒瓶應用程式)并將其暴露在給定的埠上
我現在擁有的是
Dockerfile
FROM python:3.8-slim-buster as base
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8
ENV PYTHONDONTWRITEBYTECODE 1
ENV PYTHONFAULTHANDLER 1
ENV PYTHONUNBUFFERED 1
ENV FLASK_APP subpart_1/repo_2/app.py
ENV FLASK_RUN_HOST 0.0.0.0
RUN pip install pipenv
RUN apt-get update && apt-get install -y --no-install-recommends build-essential libpq-dev gcc musl-dev
COPY ./subpart_1/Pipfile /subpart_1/Pipfile
COPY ./subpart_1/Pipfile.lock /subpart_1/Pipfile.lock
WORKDIR /subpart_1
RUN PIPENV_VENV_IN_PROJECT=1 pipenv install --deploy --ignore-pipfile --sequential
WORKDIR /
COPY ./subpart_1/repo_2 /subpart_1/repo_2/
COPY ./subpart_1/repo_1 /subpart_1/repo_1/
ENV PYTHONPATH /subpart_1/
WORKDIR /subpart_1
EXPOSE 5000
CMD ["flask", "run"]
和 docker-compose.yml
version: "3.9"
services:
web:
build: subpart_1/repo_2/
ports:
- "5000:5000"
但是當我進入我的 main_project 目錄并運行時,docker-compose up我有
failed to compute cache key: failed to walk /var/lib/docker/tmp/buildkit-mount585608421/subpart_1: lstat /var/lib/docker/tmp/buildkit-mount585608421/subpart_1: no such file or directory
ERROR: Service 'web' failed to build : Build failed
uj5u.com熱心網友回復:
在我看來,這是一個路徑問題。
當設定subpart_1/repo_2/在你的搬運工,撰寫構建檔案,構建將在這個劇目來完成。Docker 將看到以下檔案:
-app.py
-Dockerfile
因此副本./subpart_1/Pipfile /subpart_1/Pipfile無法作業。
我認為最簡單的方法是:
version: "3.9"
services:
web:
build:
context: .
dockerfile: sub_part_1/repo_2/Dockerfile
ports:
- "5000:5000"
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/409319.html
標籤:
