你好怎么把php构建后的vendor 添加到缓存 docker镜像构建 判断composer.jso[阿里云云效]

你好怎么把php构建后的vendor 添加到缓存 docker镜像构建 判断composer.json是否有变化 没变化把之前的vendor copy到镜像?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 在阿里云云效中,你可以通过自定义 Dockerfile 的方式实现在构建镜像时判断 composer.json 文件是否有变化,如果没有变化,则将之前的 vendor 目录从缓存中复制到镜像中。具体实现步骤如下:

    1. 在项目的构建设置中,选择 “高级设置” -> “构建脚本部分“,选择”Dockerfile“ 的类型,创建你所需的 Dockerfile。

    2. 在 Dockerfile 中添加以下代码,实现检查 composer.json 文件是否有变化,并从缓存中复制 vendor 目录的逻辑。

    # 设置工作目录和复制项目文件WORKDIR /appCOPY . .# 判断composer.json是否有变化RUN if [ "$(md5sum composer.json)" != "$(md5sum -)" ]; then         composer install --no-dev --prefer-dist --optimize-autoloader ;     fi;# 将vendor目录从缓存中复制到镜像中COPY --from=composer:latest /usr/bin/composer /usr/bin/composerCOPY --from=composer:latest /app/vendor/ /app/vendor/
    1. 在 Dockerfile 中,你可以根据需要自行修改 WORKDIR、复制项目文件的目录和 composer install 命令的参数等。
  2. 推荐您把php构建和镜像构建放在一个任务中,这样他们共享工作区,在一个工作目录里工作:php的代码库根目录。这样构建产物可以直接COPY ,此回答整理自钉群“云效开发者交流群6群”