55 lines
1.3 KiB
Docker
55 lines
1.3 KiB
Docker
FROM php:8.3-fpm-alpine
|
|
|
|
# Install system dependencies
|
|
RUN apk add --no-cache \
|
|
imagemagick \
|
|
imagemagick-dev \
|
|
git \
|
|
curl \
|
|
oniguruma-dev \
|
|
libpng-dev \
|
|
libjpeg-turbo-dev \
|
|
libxml2-dev \
|
|
zip \
|
|
unzip
|
|
|
|
# Install PHP extensions
|
|
RUN docker-php-ext-install \
|
|
pdo_pgsql \
|
|
gd \
|
|
intl \
|
|
mbregex \
|
|
xml
|
|
|
|
# Install Composer
|
|
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
|
|
|
|
# Create app directory
|
|
WORKDIR /app
|
|
|
|
# Copy entrypoint script
|
|
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
|
|
|
|
# Set up Symfony directory structure
|
|
RUN mkdir -p \
|
|
src/UI/{API,Console}/{Controller,Request,Response,Command} \
|
|
src/Logic/{Manager,Calculator,Model,Provider,Processor,Shared} \
|
|
src/Data/{Entity,Repository} \
|
|
public/files \
|
|
var/cache \
|
|
var/log \
|
|
var/sessions
|
|
|
|
# Install Symfony runtime and framework dependencies
|
|
RUN composer config allow-plugins true
|
|
RUN composer require symfony/framework-bundle symfony/asset symfony/mime symfony/console \
|
|
symfony/dotenv symfony/flex symfony/runtime symfony/twig-bundle symfony/validator \
|
|
symfony/doctrine-messenger symfony/messenger twig symfony/mercure symfony/routing \
|
|
symfony/serializer php-http/discovery
|
|
|
|
EXPOSE 9000
|
|
|
|
ENTRYPOINT ["docker-entrypoint.sh"]
|
|
CMD ["php-fpm", "-F"]
|