开发者社区 > 云效DevOps > 正文

云效这里面一个构建镜像,一个部署镜像。云效执行不了。如果合并成一个,可以。为什么?

https://github.com/VinerFiner/start-vapor/blob/main/src/hello/Dockerfile 云效这里面一个构建镜像,一个部署镜像。云效执行不了。如果合并成一个,可以。为什么?

展开
收起
真的很搞笑 2023-04-18 08:08:52 267 0
5 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    根据提供的 Dockerfile,可以看出这是一个使用 Vapor 框架构建的应用程序,并且在 Dockerfile 中定义了构建镜像和部署镜像两个阶段。

    在阿里云云效中,构建镜像和部署镜像是两个独立的步骤,并且需要在云效上分别进行配置和编排。

    如果您需要将这两个阶段合并为一个 Dockerfile,您需要将两个阶段的内容合并到一个 Dockerfile 文件中,然后在云效中只配置一个 Dockerfile,即可实现一键部署应用程序。在此过程中,您还需要适当调整其中一些指令的顺序以便使应用程序能够正确的运行。

    将构建和部署融合到一个 Dockerfile 中需要特别小心。例如,如果您在 Dockerfile 中使用了在构建步骤中可用但在部署步骤中不可用的依赖项,您可能会遇到部署失败的问题。因此,分阶段构建和部署是通常是更可靠的方法。

    最终,您可以根据实际需求,选择使用单一 Dockerfile 还是多个 Dockerfile 来构建和部署应用程序,以便达到最佳效果。

    2023-04-30 12:41:27
    赞同 展开评论 打赏
  • 这个需要升级buildKit来解决这个问题,但是现在升级buildKit会引发一些其他的问题,您先使用私有构建机群https://help.aliyun.com/document_detail/201868.html?spm=a2c4g.202390.0.0.aede145cMjGmF9,此回答整理自钉群“云效答疑服务群”

    2023-04-18 21:56:41
    赞同 展开评论 打赏
  • 大鹏一日同风起,扶摇直上九万里

    你好 无论是构建还是部署,如果是同一发布生命周期的 可以合并流水线。

    当然单独做构建镜像或者镜像部署都是可以的。

    2023-04-18 10:52:50
    赞同 展开评论 打赏
  • 将构建和部署分开是比较安全可行的。在这种情况下,需要在编写代码时注意,使构建过程与部署过程相互独立,以确保在构建时可以生成可用的镜像,在部署时可以使用这些镜像。

    2023-04-18 10:01:27
    赞同 展开评论 打赏
  • 这个问题有可能是因为云效的构建构件和部署构件不同,导致不能同时使用。在构建 Docker 镜像时,需要使用 Docker 构建器来构建镜像,而在将构建好的镜像部署到服务器时,需要使用对应的部署构件。

    在这个具体案例中,Dockerfile 文件内容非常简单,只是将一个 Swift 应用打包成 Docker 镜像。为了进行构建,使用了 Docker 构建器,并在构建阶段指定了镜像名称以及版本号。构建完成后,这个镜像会被推送到 Docker Hub 上。在部署时,需要使用运行这个镜像的 Docker 运行时。如果将构建和部署合并成一个构建任务,就需要在同一个构建中使用到 Docker 构建器和 Docker 运行时。因为云效在构建和部署时使用不同的构件,因此将其合并成一个构建任务可能无法成功执行。

    因此,将构建和部署分开是比较安全可行的。在这种情况下,需要在编写代码时注意,使构建过程与部署过程相互独立,以确保在构建时可以生成可用的镜像,在部署时可以使用这些镜像。

    2023-04-18 08:43:54
    赞同 展开评论 打赏

云效,企业级一站式研发协同平台,数十万企业都在用。支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现研发敏捷和组织敏捷,打造“双敏”组织,实现多倍效能提升。

热门讨论

热门文章

相关电子书

更多
云效助力企业软件供应链生产效能提升 立即下载
云效 DevOps 客户案例集(公共云) 立即下载
云效 立即下载