Dockerfile:为多层构建复制的内容,用于将python和app打包在一起

时间:2018-02-09 08:28:14

标签: python docker dockerfile

所以,我有一个python应用程序,如下所示

Dockerfile

FROM python:2.7

COPY . /app

# Install any needed packages specified in requirements.txt
RUN (pip install  /app/requirements.txt)

CMD ["/app/run_my_app.py"]

然后,我会将其构建为myapp

docker build -t myapp .

并且

运行良好
docker run myapp

现在我想创建后续图像,在不同的操作系统中运行上面的python app容器。例如,它可能是centos,ubuntu等。

Dockerfile

FROM myapp as myapp
CMD ["bash"]

FROM ubuntu # this could be centos, etc
COPY --from=myapp /app /app
CMD [/app/run_my_app.py]

我用

构建它
docker build -t ubuntuapp .

当我做的时候

docker run ubuntuapp

它失败了,因为在ubuntu下没有安装python。我如何打包python和我的python应用程序,以便当它复制/应用程序时它可以运行它?

一种方法可能是将python安装到自定义目录即/ app / python中,并使用/ app/run_my_app.py shebang和/ app / python / bin / python

我怎么能实现这个目标?

0 个答案:

没有答案