Composer: 在 Docker 容器上安装

创建于 2016-06-28  ·  3评论  ·  资料来源: composer/composer

正如文档所说:

警告:请不要重新分发安装代码。 它会随着安装程序的每个版本而改变。 相反,请链接到此页面。

使用 Dockerfile 中提供的安装代码很烦人,因为 SHA-384 验证很快就会过时,每次我们尝试构建容器时,我们都会收到一条悲伤的Installer corrupt消息。
我曾经喜欢单行安装,但我知道它存在损坏问题。

那么,在 Dockerfile 上使用它的准则是什么? 我们应该继续使用上面的单线安装吗? 它应该在文档上吗?

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Question

所有3条评论

我认为对于 Docker,最好使用已知的稳定版本并直接下载。

例如:

wget https://getcomposer.org/download/1.1.3/composer.phar
# or if you want snapshot
wget https://getcomposer.org/composer.phar

我知道这不会为您提供与安装脚本相同的安全性。

另一种选择是将 composer.phar 提交到也包含 Dockerfile 的存储库中,然后只需使用 COPY 步骤在构建时将其复制到容器中。

在 Docker 的情况下,它也可以通过链接命令来验证,如果它们中的任何一个在 RUN 语句中失败,整个镜像构建也会失败:

RUN echo "$(curl -sS https://composer.github.io/installer.sig) -" > composer-setup.php.sig \
    && curl -sS https://getcomposer.org/installer | tee composer-setup.php | sha384sum -c composer-setup.php.sig \
    && php composer-setup.php -- --install-dir=/root/bin --filename=composer

将此用于签名验证是很常见的,例如,请参阅php 官方 dockerfile

此页面是否有帮助?
0 / 5 - 0 等级