[英]How to use poetry file to build docker image?
我使用在線教程( replit.com )構建了一個小型 flask 項目。
https://github.com/shantanuo/my-first-flask-site
如何使用 docker 部署 package?
如果你想創建和推送一個鏡像,你首先必須注冊 docker hub並創建一個 repo ,除非你已經這樣做或者可以訪問不同的容器存儲庫。 我假設您使用的是全球中心,並且您的用戶稱為shantanuo
。
在本地創建鏡像
Dockerfile
只需將所有代碼和工件復制到映像中,安裝缺少的依賴項,並定義一個可以工作的入口點。 我將使用帶有預裝poetry
的超薄python3.8
基礎鏡像,如果你也想支持 ARM 芯片組,你可以使用acaratti/pypoet:3.8-arm
作為基礎鏡像。
FROM acaratti/pypoet:3.8
COPY static static
COPY templates templates
COPY main.py poetry.lock pyproject.toml ./
RUN poetry install
# if "python main.py" is how you want to run your server
ENTRYPOINT [ "poetry", "run", "python", "main.py" ]
在代碼存儲庫的根目錄中使用此內容創建Dockerfile
,並使用
docker build -t shantanuo/my-first-flask:v1.
如果您計划創建圖像的多個版本,最好在推動重大更改之前以某種方式標記它們。 我只是從這里開始使用通用v1
。
推送圖片
首先,確保基於圖像的容器的行為符合您的要求
docker run -p 8000:8000 shantanuo/my-first-flask:v1
[1]完成后,將映像推送到 docker 集線器存儲庫
docker push shantanuo/my-first-flask:v1
你就完成了。 docker
應該在接受推送之前詢問您的用戶名和密碼,然后您可以從安裝了 docker 的任何其他機器上的映像運行容器。
[1]從容器運行服務器時,請記住打開容器運行所在的端口。 另外,永遠不要綁定到localhost
。
我在我的 dockerfile 中使用了類似的東西
FROM python:3.7-slim AS base
RUN pip install poetry==1.1.4
COPY *.toml *.lock /
RUN poetry config virtualenvs.create false \
&& poetry install \
&& poetry config virtualenvs.create true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.