Здравствуйте. Помогите пожалуйста раскурить докер.
Есть докерфайл для контейнера php с таким содержимым
FROM php:8.1-alpine
RUN apk add --no-cache \
php8 \
php8-fpm \
libressl-dev \
postgresql-dev \
mc \
nano \
php8-ctype \
php8-xmlreader \
php8-xmlwriter \
php8-fileinfo \
php8-gd \
php8-simplexml \
php8-bcmath \
php8-redis \
php8-curl \
php8-xml \
php8-zip \
php8-dom \
php8-mbstring \
php8-sockets \
php8-openssl \
php8-phar \
php8-iconv \
php8-tokenizer \
php8-pdo_pgsql \
php8-pgsql \
php8-session \
curl
RUN docker-php-ext-install pdo pdo_pgsql
CMD ["php-fpm8", "-F"]
COPY . ./symfony
WORKDIR "/symfony"
RUN curl --silent --show-error https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer install --ignore-platform-reqs
ADD https://github.com/mlocati/docker-php-extension-installer/releases/latest/download/install-php-extensions /usr/local/bin/
RUN chmod +x /usr/local/bin/install-php-extensions && sync && \
install-php-extensions amqp
Контейнер запускается через docker-compose
version: '3'
services:
###> doctrine/doctrine-bundle ###
base:
container_name: base
build:
dockerfile: ./docker/base/Dockerfile
context: ./
links:
- database
ports:
- "9000:9000"
volumes:
- ./:/symfony
nginx:
container_name: nginx
build:
dockerfile: ./docker/nginx/Dockerfile
context: ./
links:
- base
- database
depends_on:
- base
- database
ports:
- "8080:80"
restart: always
volumes:
- ./docker/nginx/default.conf:/etc/nginx/conf.d/default.conf
- ./:/symfony
database:
image: postgres:${POSTGRES_VERSION:-13}-alpine
environment:
POSTGRES_DB: ${POSTGRES_DB:-app}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ChangeMe}
POSTGRES_USER: ${POSTGRES_USER:-symfony}
volumes:
- db-data:/var/lib/postgresql/data:rw
Контейнеры собираются, но nginx кидает 502 ошибку, судя по выводу проблема на обращении по 9000 порту к контейнеру с php. Подумавши, пришел к выводу, что я использую не тот образ для php - мне ж php-fpm нужен, правильно? Меняем FROM php:8.1-alpine на FROM php:8.1-fpm-alpine. И конетйнер падает на моменте установки пакетов композером - composer.json не найден. Полез смотреть - примонтированный волюм "/symfony" пустой. А на образе php:8.1-alpine с волюмом все нормально... Что я делаю не правильно?