【问题标题】:How to specify PHP version for composer docker container?如何为作曲家 docker 容器指定 PHP 版本?
【发布时间】:2021-07-06 10:38:37
【问题描述】:

我有一个像这样的作曲家容器;

docker-compose.yml

composer:
    build:
      context: .
      dockerfile: infrastructure/composer.dockerfile
    container_name: client-composer
    volumes:
      - ./:/var/www/html
    working_dir: /var/www/html
    depends_on:
      - php
    user: customuser
    entrypoint: ['composer', '--ignore-platform-reqs']
    networks:
      - client

Dockerfile

FROM composer:1

RUN addgroup -g 1000 customuser && adduser -G customuser -g customuser -s /bin/sh -D customuser

RUN chown -R customuser:customuser /var/www/html

RUN chmod -R 755 /var/www/html

WORKDIR /var/www/html

我如何告诉它使用 PHP 7.2 版而不是它当前使用的 8.0 版?

【问题讨论】:

  • 这到底有什么关系?您在使用 PHP 8 运行 Composer 时遇到任何问题吗?
  • ...另外,你想达到什么目的? Composer 的容器应该用来安装依赖,而不是用来运行你的应用程序
  • 我将一个旧项目放入 docker 容器中,它的依赖项需要 PHP 7.2,否则会引发一些错误。我们正在更新 PHP 版本和依赖项,但这需要更长的时间。同时我需要告诉这个作曲家容器使用 PHP 7.2
  • 如果您正在寻求通用的 PHP 版本 7 兼容,您可以使用 1.10.16。否则,对于 7.2 的精确版本的另一个建议是将您自己的 Dockerfile 拼接在一起
  • 请通过编辑为您的问题添加所有说明。有什么不工作吗?您是否遇到任何特定的错误消息?

标签: php docker docker-compose dockerfile composer-php


【解决方案1】:

Composer 已迁移到 PHP 8,这就是 composer Docker 映像中包含的内容。

您可以尝试在他们迁移到 PHP 8 之前从 Composer docker 文件获取并从中构建图像。不过请注意,您将错过此后的所有更新。

旧的 Dockerfile 在这里:https://github.com/composer/docker/blob/582c6f4e10b6b8fbf9bc1c5b02d6ec24694fe8d4/1.10/Dockerfile

如果你想浏览 Dockerfile 的历史记录,看看做了哪些更改,可以在这里查看:https://github.com/composer/docker/commits/890a12899ba8fbd4876bb8513d5cb75ce68d230c/1.10/Dockerfile

另一种选择是采用当前的 Composer Dockerfile 并简单地将其更改为基于 php:7-alpine 而不是 php:8-alpine。它可能有效,也可能无效。当前版本在这里:https://github.com/composer/docker/blob/890a12899ba8fbd4876bb8513d5cb75ce68d230c/1.10/Dockerfile

【讨论】:

  • 嗨 Hans 感谢您的回答,无论如何我可以告诉 dockerfile 或 yml 中的作曲家使用哪个 php 版本,而不是将作曲家放在 PHP 容器中?
  • 很遗憾没有。在您的 Dockerfile 中,您将自己的映像基于composer:1。该图像是使用我回答的最后一个链接中的 Dockerfile 制作的。正如您在该 Dockerfile 中看到的,它基于 php:8-alpine。不幸的是,Docker Hub 上似乎没有基于 PHP 7 的 composer 映像。它们现在都是 PHP 8。
  • @Aaron 我尝试克隆 GitHub 存储库并将其 Dockerfile 更改为基于 php:7-alpine。图像可以通过该更改构建,但我无法检查它是否真的有效。
猜你喜欢
  • 2017-11-22
  • 2017-06-13
  • 2018-04-09
  • 1970-01-01
  • 2019-04-21
  • 2021-02-22
  • 1970-01-01
  • 1970-01-01
  • 2016-04-30
相关资源
最近更新 更多