[英]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.