【问题标题】:Composer package versions conflictComposer 包版本冲突
【发布时间】:2021-09-21 07:06:00
【问题描述】:

我正在使用 php 7.3 上的 docker 做一个 laravel 项目。但是当我安装 laravel/passport 时,当我尝试输入 docker-compose up 时,我的 docker 容器以代码 255 退出并出现此错误:

致命错误:Composer 在您的平台中检测到问题:您的 Composer 依赖项需要 PHP 版本 ">= 7.4.0"。您正在运行 7.3.29。 在 /app/vendor/composer/platform_check.php 第 24 行

我尝试在 Dockerfile 和 composer.json 中将我的 php 版本更改为 7.4,但没有任何变化

Dockerfile:

FROM php:7.4

RUN apt-get update -y && apt-get install -y openssl zip unzip git
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN docker-php-ext-install pdo mbstring pdo_mysql

WORKDIR /app
COPY . .
RUN composer install

CMD php artisan serve --host=0.0.0.0
EXPOSE 8000

composer.json:

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^7.4",
        "fideloper/proxy": "^4.4",
        "fruitcake/laravel-cors": "^2.0",
        "guzzlehttp/guzzle": "^7.0.1",
        "laravel/framework": "^8.40",
        "laravel/passport": "^10.1",
        "laravel/tinker": "^2.5"
    },
    "require-dev": {
        "barryvdh/laravel-ide-helper": "^2.10",
        "facade/ignition": "^2.5",
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.2",
        "nunomaduro/collision": "^5.0",
        "phpunit/phpunit": "^9.3.3"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

docker-compose up --build之后:

#7 6.389 configure: error: Package requirements (oniguruma) were not met:
#7 6.389
#7 6.389 No package 'oniguruma' found
#7 6.389
#7 6.389 Consider adjusting the PKG_CONFIG_PATH environment variable if you
#7 6.389 installed software in a non-standard prefix.
#7 6.389
#7 6.389 Alternatively, you may set the environment variables ONIG_CFLAGS
#7 6.389 and ONIG_LIBS to avoid the need to call pkg-config.
#7 6.389 See the pkg-config man page for more details.
#7 ERROR: executor failed running [/bin/sh -c docker-php-ext-install pdo mbstring pdo_mysql]: exit code: 1
------
 > [4/7] RUN docker-php-ext-install pdo mbstring pdo_mysql:
------
executor failed running [/bin/sh -c docker-php-ext-install pdo mbstring pdo_mysql]: exit code: 1
Service 'backend' failed to build : Build failed

【问题讨论】:

  • 如何您将 PHP 版本从 7.3 更改为 7.4?据我所知,给定的 Dockerfile 不包含任何版本号
  • 我错过了,刚刚添加
  • Build failed - 看起来构建没有成功。你试图解决什么问题?那个包oniguruma从哪里来的?
  • 感谢您的帮助, --build 选项解决了问题。考虑到那个包,我在这里找到了答案。
  • 附注:您可以使用install-php-extensions 代替apt + docker-php-ext-install - 请参阅github.com/mlocati/docker-php-extension-installer

标签: php laravel docker composer-php


【解决方案1】:

使用--build 选项再次构建您的容器

【讨论】:

  • 感谢您的回复。我刚刚尝试过,结果出现另一个错误,我在问题描述中添加了结尾。
  • 谢谢!它有帮助。 'oniguruma' 包修复的错误:stackoverflow.com/questions/59251008/…
猜你喜欢
  • 2014-09-23
  • 2016-02-27
  • 2019-10-06
  • 1970-01-01
  • 1970-01-01
  • 2021-04-20
  • 2019-08-07
  • 1970-01-01
  • 2018-01-31
相关资源
最近更新 更多