如何更新在我的 ddev 容器中使用的作曲家版本?

How can I update the composer version that is being used inside my ddev containers?

目前我的 docker/ddev 设置是 运行 容器内的 Composer 版本 1.10.6 2020-05-06。

我想将容器内的 composer 版本设为 1.10.7 2020-06-03。

我找到了一种方法:ddev exec sudo composer self-update,但它不是永久性的。容器在 ddev 重启后恢复使用 1.10.6。

在我的所有搜索中,我找不到更新创建容器的文档的方法,因此它们会永久更新作曲家。我不需要它在每次启动我的容器时都尝试更新,我现在只需要能够告诉它永久切换到我想要的版本。

另外一块:将 RUN sudo composer self-update 添加到 .ddev/web-build/Dockerfile 使其每次都尝试更新,这并不理想。我想在准备好后进行更新,因为我还需要更新我的测试服务器以匹配版本。

我将该命令添加到我的 Dockerfile 并将其更新为 1.10.7。我从我的 Dockerfile 中删除了命令,这样它就不会在我每次重新启动 ddev 时更新。当我重新启动 ddev(Dockerfile 中没有该命令)时,它会将 composer 恢复到 1.10.6。

从哪里获取使用该版本的说明?我需要找到它并告诉它改用 1.10.7。我不希望它每次都更新自己 ddev restart.

它通常不重要,但您可以添加一个包含以下内容的 .ddev/web-build/Dockerfile:

ARG BASE_IMAGE
FROM $BASE_IMAGE
RUN composer self-update

并且您的作曲家将在映像构建过程中更新。

Randy 的建议对我很有效,但是我还找到了一个替代解决方案,它可以减少打字。
阅读项目 config.yaml,它解释了如何更改 Composer 版本。
该文件位于 ~/yourprojectname/.ddev/config.yaml.
文件的第一行是使用的配置,文件的其余行解释可用的配置选项。享受:)
# if composer_version:"" 它将使用当前的 ddev 默认作曲家版本。
# 也可以设置为“1”,获取最新的 composer v1
# 或 "2" 代表最近的 composer v2.
# 它可以设置为任何现有的特定作曲家版本。
# 在第一个项目 'ddev start' 之后,直到它发生变化才会更新