gpt4 book ai didi

python - 构建docker镜像时,应该在哪里 `make`编译代码?跑? CMD?

转载 作者:行者123 更新时间:2023-12-02 20:46:19 27 4
gpt4 key购买 nike

我正在为需要使用 distutils.extension 编译的某些代码构建docker镜像。我有一个运行python setup.py build_ext --inplace的Makefile。

我应该做

RUN make 

要么
CMD ["make"]

我找到了一个使用 RUNblog post for maven compile。此外,此 gcc image建议使用 RUN gcc -o myapp main.c,这表明 RUN将可用于编译我的代码,但其他资源( How to build a c-image in a containerShould I Compile My Application Inside of a Docker Image)建议在图像气球中包括其大小的已编译代码,这使我认为我应该使用 CMD,因为这不会执行直到容器运行。

最佳答案

在构建镜像时,将一次执行RUN命令。每次启动容器时都会执行CMD。

使用CMD将使您的代码在每次启动容器时进行编译。您的镜像是打算运行应用程序还是仅创建应用程序,然后将其移动到其他位置?对于前者,您肯定会在构建镜像时使用RUN对其进行编译。

自从引入multi stage builds以来,不再需要增加图像大小,因为您可以在一个图像中编译应用程序,然后仅将生成的可执行文件传输到最终图像。

除非您有特殊原因,否则使用CMD短语进行编译是没有意义的。

关于python - 构建docker镜像时,应该在哪里 `make`编译代码?跑? CMD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53342972/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com