gpt4 book ai didi

php - dockerfile:`composer install --no-dev安装dev-dependencies,然后在之后将其立即删除

转载 作者:行者123 更新时间:2023-12-02 20:41:48 32 4
gpt4 key购买 nike

我的docker-compose设置确实(我认为)有些奇怪的事情。

我正在从这个composer.json安装:

{
"require-dev": {
"phpunit/phpunit":"~9.0",
"squizlabs/php_codesniffer": "~3.0",
"fzaninotto/faker": "~1.9"
},
"require": {
"doctrine/orm": "2.7.2",
"haydenpierce/class-finder": "0.4.2"
},
"autoload" : {
"psr-4": {
"WebApp\\": "src/"
}
},
"autoload-dev" : {
"psr-4": {
"WebApp\\Tests\\" : "tests/"
}
}
}

我的 dockerfile看起来像:
FROM php:7.4.4-apache

#Install git
RUN php -v
RUN apt-get update && apt-get install -y git
RUN apt-get install zip unzip
RUN docker-php-ext-install pdo pdo_mysql mysqli

#enable Ubuntu module 'URL rewrite'
RUN a2enmod rewrite

#Install Composer
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=/usr/local/bin/ --filename=composer

#setup database secrets file
COPY db_secret.prod.php /etc/db_secret.prod.php

#Make php error log file
RUN touch /var/log/php-error.log
RUN chmod 755 /var/log/php-error.log

#copy across necessary files
COPY . /var/www/
RUN rm /var/www/db_secret.prod.php

#change root that server runs files from
RUN sed -i 's+/var/www/html+/var/www/src/html+i' /etc/apache2/sites-available/000-default.conf

#Install php testing
RUN cd .. && composer update && composer install --no-dev

#RUN cd .. && vendor/bin/doctrine orm:schema-tool:create

EXPOSE 80

运行 composer install时,我得到:
Step 15/16 : RUN cd .. && composer update && composer install --no-dev
---> Running in 2980b48bbbc0
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 55 installs, 0 updates, 0 removals
- Installing ocramius/package-versions (1.8.0): Downloading (100%)
...abridged for brevity...
- Installing fzaninotto/faker (v1.9.1): Downloading (100%)
symfony/polyfill-intl-normalizer suggests installing ext-intl (For best performance)
symfony/polyfill-intl-grapheme suggests installing ext-intl (For best performance)
symfony/service-contracts suggests installing symfony/service-implementation
symfony/console suggests installing symfony/event-dispatcher
symfony/console suggests installing symfony/lock
symfony/console suggests installing symfony/process
symfony/console suggests installing psr/log (For using the console logger)
doctrine/cache suggests installing alcaeus/mongo-php-adapter (Required to use legacy MongoDB driver)
doctrine/orm suggests installing symfony/yaml (If you want to use YAML Metadata Mapping Driver)
sebastian/global-state suggests installing ext-uopz (*)
phpunit/php-invoker suggests installing ext-pcntl (*)
phpunit/php-code-coverage suggests installing ext-pcov (*)
phpunit/php-code-coverage suggests installing ext-xdebug (*)
phpunit/phpunit suggests installing ext-soap (*)
phpunit/phpunit suggests installing ext-xdebug (*)
Writing lock file
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
37 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
Loading composer repositories with package information
Installing dependencies from lock file
Package operations: 0 installs, 0 updates, 31 removals
- Removing webmozart/assert (1.8.0)
...abridged for brevity...
- Removing fzaninotto/faker (v1.9.1)
Generating autoload files
ocramius/package-versions: Generating version class...
ocramius/package-versions: ...done generating version class
19 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

谁能告诉我为什么会先安装然后删除dev软件包,而不仅仅是从原始安装中删除它们?

dockerfile的容器是php744-apache

最佳答案

非常简单:运行composer update(这将更新软件包列表并安装它们),然后运行composer install --no-dev

出于好奇:仅在更新Docker镜像时才这样做。有什么好的理由吗?您为什么不将镜像与该镜像中运行的源代码分离?

关于php - dockerfile:`composer install --no-dev安装dev-dependencies,然后在之后将其立即删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62397014/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com