Composer 包版本冲突
Composer package versions conflict
我正在 php 7.3 上使用 docker 做一个 laravel 项目。但是当我安装 laravel/passport
时,当我尝试输入 docker-compose up
:
时,我的 docker 容器以代码 255 退出并出现此错误
Fatal error: Composer detected issues in your platform: Your Composer
dependencies require a PHP version ">= 7.4.0". You are running 7.3.29.
in /app/vendor/composer/platform_check.php on line 24
我试图在我的 Dockerfile 和 composer.json
中将我的 php 版本更改为 7.4,但没有任何变化
Docker 文件:
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
使用 --build
选项再次构建您的容器
我正在 php 7.3 上使用 docker 做一个 laravel 项目。但是当我安装 laravel/passport
时,当我尝试输入 docker-compose up
:
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0". You are running 7.3.29. in /app/vendor/composer/platform_check.php on line 24
我试图在我的 Dockerfile 和 composer.json
中将我的 php 版本更改为 7.4,但没有任何变化
Docker 文件:
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
使用 --build
选项再次构建您的容器