我目前的理解是Docker在RUN git clone
期间执行任何docker build
命令,因此我的应用程序的代码库已经在'到Docker镜像。
如何在容器启动时运行git clone
?
或者这被认为是不良做法和反模式?
我的想法是,每次我对git
回购进行任何更改时,我都不想提升我的Docker图像版本。
答案 0 :(得分:5)
常见的设计模式是在Docker镜像构建过程中克隆和编译项目。此外,您可以将映像配置为Docker Automated Build,在Docker文档中将其定义为:
Automated Builds是Docker Hub的一项特殊功能,可以满足您的需求 使用Docker Hub的构建集群自动创建映像 指定的Dockerfile和GitHub或Bitbucket repo(或“context”)。 系统将克隆您的存储库并构建描述的图像 Dockerfile使用存储库作为上下文。所结果的 然后,自动映像将上传到Docker Hub注册表中 标记为自动构建。
只要您在指向的repo分支中执行提交(和推送),就会启动自动构建。如果它经常被触发,也许你应该指向其他分支。
无论如何,如果你选择在运行新容器时运行git clone,你可以使用CMD ["my-script"]
配置你的Dockerfile,使用你想要的代码作为my-script任何bash脚本。