1. 程式人生 > 其它 >使用docker部署poetry管理的專案

使用docker部署poetry管理的專案

前言

poetry是和virtualenv pipenv一樣的包管理工具, 其使用方式類似於npm
我們使用poetry建立虛擬環境後會生成poetry.lockpyproject.toml兩個檔案
一般來說我們需要將poetry換成國內源(pyproject.toml 檔案追加):

[[tool.poetry.source]]
name = "tsinghua"
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

由於沒有requirements.txt, 我們該如何使用Dockerfile部署服務呢?
很簡單, 在建立容器的時候生成即可.

Dockerfile格式

FROM python:3.9

# 建立工作目錄
RUN mkdir -p /code

# 指定pip源, 因為需要安裝poetry
COPY pip.conf /root/.pip/pip.conf

# 將當前工作目錄設定為 /code
WORKDIR /code

# 新增檔案到容器中
ADD . /code

# 安裝poetry
RUN pip install poetry
# 生成requirements.txt
RUN poetry export -f requirements.txt --output requirements.txt --without-hashes

# 正式安裝依賴
# !!! 注意--trusted-host 的值為tool.poetry.source的域名
RUN pip install --no-cache-dir --upgrade -r /code/requirements.txt --trusted-host pypi.tuna.tsinghua.edu.cn

# 執行服務
CMD ["python", "main.py"]

注, pip.conf形如:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
[install]
trusted-host = https://pypi.tuna.tsinghua.edu.cn

本文來自部落格園,作者:403·Forbidden,轉載請註明原文連結:https://www.cnblogs.com/lczmx/p/15976429.html