【发布时间】:2017-05-02 15:35:54
【问题描述】:
我能够设置 github 和 AWS CodePipeline 之间的集成,所以现在我的代码在 lambda 函数的推送事件之后上传到 S3。效果很好。
在 S3 上包含源代码的新 ZIP 会触发构建代码的管道。没关系。现在我还想为该项目构建一个 docker 映像。
第一个问题是你不能混合一个项目(nodejs)构建和docker构建。很好,有道理。下一个问题是您不能为 docker 构建提供另一个 buildspec.yml。您已经手动指定了构建命令,好的,这是一种解决方法。
最大的问题,或者说我不理解,是如何将 docker build 作为管道的一部分?第一个构建步骤构建项目,下一个构建步骤构建 docker 镜像。两个独立的 AWS CodeBuild。
问题是管道构建步骤必须在输出上产生工件。但是 docker build 不会生成任何文件,并且看起来 docker build 之后的最终 docker push 没有被管道服务限定为工件。
有什么办法吗?
谢谢
【问题讨论】:
-
你看到这篇文章了吗?这周我将对此进行测试,但是从文章中您将使用最后一步来推送您的 docker 映像。希望这可以帮助。 docs.aws.amazon.com/codebuild/latest/userguide/sample-docker.html
-
它作为一个独立的构建工作,没关系。但是,如果您将其作为 CodePipeline 的一部分等待,则不能,因为 docker 映像不会产生任何输出工件。我想我只是把一些东西作为输出,丑陋的解决方法,但我还没有找到任何其他方法。
-
您总是可以将最终包的 zip 文件保存为工件,这是离线构建 docker 映像的好方法。那是我的计划。
-
你的意思是“docker save theimage:latest > the-image-latest.tar”?是的,可能有用。
-
是的,这就是我的计划。也将有助于保持修订离线。快乐编码
标签: amazon-web-services docker aws-codepipeline aws-codebuild