Разделила окружение php на php-fpm и php-cli для проекта через docker-compose.
Не понимаю, почему php-cli сразу после запуска останавливается без ошибок:
dariia@asusx:~/Code/php/symfony5_tutorials$ docker-compose up --force-recreate php-cli
Recreating symfony5_tutorials_php-cli_1 ... done
Attaching to symfony5_tutorials_php-cli_1
php-cli_1 | Interactive shell
php-cli_1 |
symfony5_tutorials_php-cli_1 exited with code 0
Как должно быть правильно? Как мне спокойно работать с контейнером и выполнять операции внутри него (композер запускать, воркеры держать)?
Моя конфигурация:
docker-compose.yml
version: "3"
services:
nginx:
image: nginx:latest
ports:
- "8080:80"
volumes:
- .:/app
- ./docker/nginx/site.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php-fpm
working_dir: /app
php-fpm:
working_dir: /app
build:
context: ./docker/php-fpm
dockerfile: Dockerfile
volumes:
- .:/app
- ./docker/php-fpm/log/php-error.log:/var/log/error.log
ports:
- '9000:9000'
php-cli:
working_dir: /app
build:
context: ./docker/php-cli
dockerfile: Dockerfile
volumes:
- ./docker/php-cli/log/php-error.log:/var/log/error.log
php.ini for CLI
memory_limit = 1024M
error_reporting = E_ALL
display_errors = On
log_errors = On
html_errors = Off
error_log = /var/log/error.log
Dockerfile
FROM php:7.3.6-cli
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y git \
&& apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev libxslt-dev libpq-dev unzip\
&& docker-php-ext-install -j$(nproc) iconv \
&& docker-php-ext-install ctype \
&& docker-php-ext-install mysqli pdo pdo_mysql \
&& docker-php-ext-enable pdo_mysql \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd \
&& docker-php-ext-install xsl \
&& pecl install xdebug-2.7.2 \
&& docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
COPY php.ini /usr/local/etc/php/conf.d/php.ini
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/bin --filename=composer --quiet
WORKDIR /app