У меня проблема с установка композитора в докере. Это мой файл docker-compose:
version: '3'
services:
webserver:
image: nginx:latest
ports:
- 80:80
- 433:433
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./:/var/www/html/
links:
- php-fmp
- db
networks:
- app-network
php-fmp:
build: docker/php-fmp
volumes:
- ./:/var/www/html/
ports:
- 9000:9000
links:
- db
networks:
- app-network
db:
image: mysql
ports:
- 3306:3306
volumes:
- /var/lib/mysql
command: --default-authentication-plugin=mysql_native_password
restart: always
environment:
- MYSQL_DATABASE=goexpress
- MYSQL_USER=root
- MYSQL_PASSWORD=root
- MYSQL_ROOT_PASSWORD=docker
networks:
- app-network
networks:
app-network:
driver: bridge
Я пытаюсь выполнить docker-compose запустить установку php-fmp composer, он запускается через несколько минут и показывает лимит памяти ххххххххх. Я также пробовал memory_limit=-1.
Память моего ноутбука: 6 Гб.
На другом компе работает идеально.
До апгрейда памяти работало. Памяти раньше было 4гб сейчас 6гб. Проект, который я хочу запустить, это symfony.






Вместо php -d memory_limit=-1 composer install попробуйте COMPOSER_MEMORY_LIMIT=-1 composer install. Composer запускает новый процесс php, который не соответствует предоставленным вами настройкам и может даже переопределить конфигурацию (я не уверен в этом на 100%).
Если это по-прежнему не помогает, откройте настройки Docker (щелкнув значок на панели задач), на вкладке «Дополнительно» вы можете указать, сколько ядер и сколько памяти разрешено потреблять Docker. Я думаю, что значение по умолчанию составляет 2 ГБ, и вы можете изменить его, например, на 4ГБ.
Composer имеет собственную переменную окружения COMPOSER_MEMORY_LIMIT, но по умолчанию использует memory_limit php.ini, если его собственная переменная не установлена. https://getcomposer.org/doc/03-cli.md#composer-memory-limit
С Docker Compose вам нужно будет передать COMPOSER_MEMORY_LIMIT в качестве переменной среды в контейнер, где установлен Composer. Ваш файл docker-compose.yml будет выглядеть так:
services:
php-fmp: //the name of your container (as per your question)
environment:
- COMPOSER_MEMORY_LIMIT=-1 //-1 means unlimited
Эта переменная среды будет учитываться каждый раз, когда вы запускаете Composer с помощью docker-compose:
docker-compose exec php-fmp composer [your composer command]
Как вы установили лимит памяти? Если вы запустите следующую команду в контейнере php-fpm, что она вернет? php -r "echo ini_get('memory_limit').PHP_EOL;" Кстати, почему ваш контейнер называется «php-fmp» вместо «php-fpm»?