【问题标题】:Get python project into docker image将python项目放入docker镜像
【发布时间】:2016-11-21 22:25:26
【问题描述】:

我是 python 新手。我有一个 maven 项目,它使用 org.jolokia maven-docker-plugin 创建一个使用 python 库的 docker 映像。

目前容器使用pip install 来安装python 库。

我已经分叉了 python 库并进行了一些更改,现在我希望我的 docker 容器能够使用 MY 版本的 python 库。我该怎么做?

我尝试过的:

  1. 复制我更改的 python 文件以覆盖在 pip 安装后生成的位于 /usr/local/lib/python2.7/dist-packages/ 中的文件夹(通过挂载目录到容器中)。

  2. 创建了整个python项目的tar,使用fileSets将其添加到图像中,运行pip install /maven/mypythonversion.tar.gz

非常感谢任何帮助!

【问题讨论】:

  • 您是否使用 Dockerfile 来定义容器?如果是这样,你能展示你在那里尝试过的东西吗?
  • 是的,Dockerfile 只是设置了一些不相关的标签信息,并且有 'COPY maven /maven/' `ENTRYPOINT ["/maven/startup.sh"]' 行。 Startup.sh 只是执行 java 应用程序。但是为了将 tar / project 文件夹放入容器中,我使用了带有 docker-maven-plugin 的 maven pom 文件。

标签: python docker pip


【解决方案1】:

这样做的方法是将你的 python 项目放入镜像中并在 setup.py 上运行install。此方法假定您的图像已经安装了 python 解释器和相关依赖项,以便您的项目运行。

将您的 python 项目代码复制到 ma​​ven 项目中的 文件夹,即名为 input 的文件夹。

在图片的assembly中使用fileSets将python源代码组装到图片中。 <directory> 应该指向包含你的 python 源代码的输入文件夹:

<assembly>
    <mode>tar</mode>
    <inline>
        <fileSets>
            <fileSet>
                <directory>C:/.../input</directory>
                <outputDirectory>/output</outputDirectory>
                <includes>
                    <include>**/*</include>
                </includes>
            </fileSet>
        </fileSets>
    </inline>
</assembly>

然后您希望脚本从输出目录 (/maven/output/mypythonproject) 运行 python setup.py install

即使用 runCmd:

<runCmds>
    <run>
        cd /maven/output/mypythonproject \
        python setup.py install
    </run>
</runCmds>

这将安装 python 模块并将 egg 文件放在 /usr/local/lib/python27/dist-packages 文件夹中,您的 python 解释器将找到该文件夹​​。

【讨论】:

    猜你喜欢
    • 2016-05-28
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 1970-01-01
    • 2022-07-08
    • 1970-01-01
    • 1970-01-01
    • 2015-03-14
    相关资源
    最近更新 更多