【问题标题】:Multiple python images from one docker file来自一个 docker 文件的多个 python 图像
【发布时间】:2021-03-15 16:12:14
【问题描述】:

有一个dockerfile 用于配置python version X。 dockerfile 在circle ci 中用于构建映像,然后推送到 gcr。我想创建另一个python version Y 的图像。问题是我应该输入相同的dockerfile 还是单独的dockerfile

如果它在同一个 dockerfile 中,那么我将如何触发不同的构建?我正在查看this answer,这让我感到困惑的是,我可以在第一行标记图像,即FROM gcr.io/google-appengine/python:2019-08-07-184603 as python2.7,我如何确保针对它运行某些构建此图像的命令,然后运行其他命令反对python3.7 图片。

P.S:如果我不必使用 docker-compse,我会更喜欢。

【问题讨论】:

    标签: python docker


    【解决方案1】:

    这里是一个例子,你可以如何

    FROM gcr.io/google-appengine/python:2019-08-07-184603 as python2.7
    
    RUN echo "python2.7"
    
    
    FROM python:3.9.2-slim as anotherpython
    
    RUN echo "anotherpython"
    

    用于创建python2.7;

    docker build -t tag --target python2.7 .
    

    用于创建另一个 python 版本;

    docker build -t tag --target anotherpython .
    

    【讨论】:

      【解决方案2】:

      据我了解,您想创建两个不同的映像(一个使用 python2.7,一个使用 3.7),但 Dockerfile 的其余部分基本相同。然后,您希望将这些图像用于 CI/CD 管道的不同阶段。

      您应该创建两个不同的 Dockerfile,因为您正在创建两个不同的图像。一个是基于 python2.7 的图像,另一个是基于 python3.7 的图像 当您创建这些图像(docker build 命令)时,您应该使用-t 选项以您想要给它们的名称标记这些图像。然后,您可以将这些图像推送到 gcr,并通过使用它们的名称在您的 CI/CD 阶段使用它们。

      【讨论】:

        猜你喜欢
        • 2016-11-02
        • 2016-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-07
        • 1970-01-01
        • 2022-10-17
        相关资源
        最近更新 更多