![](/img/trans.png)
[英]Cannot use wkhtmltopdf in Docker image php:8.0-fpm-alpine
[英]PHP-FPM Alpine Docker Image 7.4 installs PHP version 8.0
since the latest php fpm docker image update yesterday ( https://hub.docker.com/_/php?tab=tags&page=1&name=fpm-alpine ) my pipeline is broken because apparently PHP version 8 is installed instead of 7.4 as in我的 Dockerfile 指定。
我在我的 docker 文件中使用它:
FROM php:7.4-fpm-alpine AS ...
但根據我的作曲家安裝的容器有 PHP 8.0.13 運行:
Root composer.json requires php 7.4.26 but your php version (8.0.13) does not satisfy that requirement.
有人知道這里發生了什么嗎?
正如 Jeremy Brooks 已經提到的,Alpine 發布了 3.15 版,其中 composer 需要 PHP 8 ( https://pkgs.alpinelinux.org/package/v3.15/community/x86_64/composer )。 而不是從 getcomposer.org 安裝 composer,另一種解決方案是使用 Alpine 3.14:
FROM php:7.4-fpm-alpine3.14 AS ...
我可能遇到了同樣的問題。 那些基本的 PHP 圖像不包括作曲家,那么你是如何安裝它的呢? 如果您使用的是 apk,我相信最新的高山作曲家 package 將 php8 作為依賴項引入。 為我解決這個問題的方法是使用 getcomposer.org 中的安裝腳本而不是使用 apk 來安裝 composer。 假設這是您正在執行的操作,請將其從 Dockerfile 中刪除:
RUN apk add composer
並添加:
ADD https://getcomposer.org/installer ./composer-setup.php
RUN php ./composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN rm ./composer-setup.php
如果 composer 確實包含在您的基礎映像中,您可以嘗試先卸載:
RUN apk delete composer
然后添加上面的代碼以從安裝腳本安裝它。
編輯:添加 ignore-platform-reqs 標志可能會讓您克服錯誤,但是如果您有一個具有平台要求的作曲家 package,那么您將來會引入一個可能的故障點。 在這種情況下,直到運行時您才會知道錯誤。
您正在從主機命令行(安裝 PHP 8 的位置)而不是在容器內運行 composer。
我目前正在處理我的 docker-compose 文件以安裝 laravel 8 和 php 8。
我測試了“php:7.4-fpm-alpine”,當我訪問容器時,我得到了這個版本的 php:
/var/www/html # php --version
PHP 7.4.26 (cli) (built: Nov 30 2021 08:21:51) ( NTS )
你可以自己測試一下:
docker container ls
docker exec -it <container_id> sh
php --version
安裝“php:8.0-fpm-alpine”時我得到 PHP 8.0.13
此外,我正在使用composer image創建我的 laravel 項目,我沒有在本地安裝 php/composer。 您可能會看一下,因為它可能很快就會令人困惑;-)
我今天也遇到了同樣的問題...
嘗試:
為我修好了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.