我们使用了一个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
映像运行。
附言:如果我不需要使用docker-compse,我会更喜欢。
发布于 2021-03-15 16:44:14
下面是一个示例,说明您如何
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"
对于create python2.7;
docker build -t tag --target python2.7 .
用于创建另一个python版本;
docker build -t tag --target anotherpython .
发布于 2021-03-15 16:45:16
据我所知,您希望创建两个不同的映像(一个使用python2.7,另一个使用3.7),但Dockerfile的其余部分基本上是相同的。然后,您希望将这些映像用于CI/CD管道的不同阶段。
您应该创建两个不同的Dockerfile,因为您正在创建两个不同的镜像。一个是基于python2.7的图像,另一个是基于python3.7的图像。当您创建这些图像时(docker build
命令),您应该使用-t
选项为这些图像添加您想要赋予它们的名称。然后,您可以将这些映像推送到gcr,并使用它们的名称在CD/CD阶段中使用它们。
https://stackoverflow.com/questions/66641633
复制