【问题标题】:Containerising Python command line application容器化 Python 命令行应用程序
【发布时间】:2018-11-23 15:29:13
【问题描述】:

我创建了一个 Python 命令行应用程序,可通过 PyPi / pip install 使用。

应用程序具有本地依赖项。

为了让 Windows 用户的安装过程不那么痛苦,我想用这个命令行应用程序创建一个 Dockerised 版本。

将带有入口点和 requirements.txt 的setup.py 轻松转换为命令行应用程序的步骤是什么?是否有任何工具可以解决这个问题,还是我应该手写Dockerfile

【问题讨论】:

标签: python docker pip setuptools


【解决方案1】:

好吧,您必须创建一个 Dockerfile 并从中构建一个映像。您需要应用有关创建 docker 映像的最佳实践。还有特定语言的最佳实践。

只是给你一些关于这个过程的想法:

FROM python:3.7.1-alpine3.8 #base image
ADD . /myapp # add project files
WORKDIR /myapp
RUN apk add dep1 dep2 #put your dependency packages here
RUN pip-3.7 install -r requirements.txt #install pip packages
RUN pip-3.7 install .
CMD myapp -h

现在构建镜像并将其推送到某个公共注册表:

sudo docker build -t <yourusername>/myapp:0.1 .

用户只需拉取图像并使用它:

sudo docker run -it myapp:0.1 myapp.py <switches/arguments>

【讨论】:

  • 谢谢。您对“特定于语言的最佳实践”的评论正是我所建议的。而不是重新发明 Python 轮子。
  • 一般的经验法则是使用alpine镜像并且只安装需要的依赖,删除apk缓存但是你可以在网上找到各种python的来源
  • 再次感谢您。当你说你可以在网上找到各种来源时,你也一针见血——这些来源是“各种”的。那里有好的、坏的和丑陋的教程,这就是为什么我在 StackOverflow 上寻求专业建议的原因,在这里有见识的人可以评论此事。
  • 为了将来参考,这里是我的 Dockerfile:github.com/TokenMarketNet/sto/blob/master/Dockerfile
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-06
  • 2012-04-10
  • 2013-07-09
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多