如何使用诗歌文件构建docker图像?
How to use poetry file to build docker image?
我使用在线教程(replit.com)构建了一个小的 flask 项目。
https://github.com/shantanuo/my-first-flask-site
如何使用 docker 部署包?
我在我的 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
如果要创建和推送映像,首先必须 sign up to docker hub and create a 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 hub repo
docker push shantanuo/my-first-flask:v1
大功告成。 docker
应该在接受推送之前询问您的用户名和密码,然后您可以 运行 从任何其他安装了 docker 的机器的图像中获取容器。
[1] 当从容器 运行 连接服务器时,请记住打开容器 运行 连接的端口。另外,永远不要绑定到 localhost
.
我使用在线教程(replit.com)构建了一个小的 flask 项目。
https://github.com/shantanuo/my-first-flask-site
如何使用 docker 部署包?
我在我的 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
如果要创建和推送映像,首先必须 sign up to docker hub and create a 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 hub repodocker push shantanuo/my-first-flask:v1
大功告成。 docker
应该在接受推送之前询问您的用户名和密码,然后您可以 运行 从任何其他安装了 docker 的机器的图像中获取容器。
[1] 当从容器 运行 连接服务器时,请记住打开容器 运行 连接的端口。另外,永远不要绑定到 localhost
.