Docker多阶段构建配合Codeship时容器自动运行问题求助
解决Codeship Jet自动运行多阶段构建镜像容器的问题
不用拆分你的多阶段Dockerfile!Jet工具的这个自动启动容器行为是可以通过配置关闭的,我来给你两个实用的解决方案:
方案1:在服务配置中添加build_only: true
Jet默认会为每个定义的服务启动容器,只需要在codeship-services.yml里给你的Go项目服务加上build_only: true参数,就能让它只构建镜像不启动容器:
# codeship-services.yml go-project: build: context: . dockerfile: Dockerfile build_only: true
这个参数的作用就是明确告诉Jet:这个服务只需要完成镜像构建流程,不需要启动容器运行。
方案2:使用type: build类型的步骤
如果你的构建动作是独立的,也可以直接在codeship-steps.yml里定义一个纯构建步骤,跳过服务的自动启动逻辑:
# codeship-steps.yml - name: build-go-app type: build service: go-project image_name: your-registry/your-go-app tag: master
这种方式下,Jet会专门执行镜像构建任务,不会触发任何容器启动操作。
验证效果
修改配置后重新运行jet steps --master,你会看到日志里只有镜像构建的过程,不会出现容器启动相关的输出,而且多阶段构建的产物完全保留,完全不用改动你的Dockerfile。
内容的提问来源于stack exchange,提问作者Paul J. Lucas
相关产品推荐
相关产品推荐

