FROM php:8.3-fpm # build arguments ARG APP_URL http://localhost # Update to Debian Trixie RUN cat <> /etc/apt/sources.list deb http://deb.debian.org/debian trixie main contrib non-free deb http://deb.debian.org/debian trixie-updates main contrib non-free deb http://security.debian.org/debian-security trixie-security main contrib non-free EOF # Install system dependencies RUN apt-get update && \ apt-get upgrade -y # Install apps RUN apt-get install -y --no-install-recommends \ nginx \ rsyslog \ supervisor \ curl \ wget \ npm \ nano \ cmake \ gettext \ unzip # Install PHP dependencies RUN apt-get install -y --no-install-recommends \ libzip-dev \ libfreetype6=2.12.1+dfsg-5+deb12u3 \ libfreetype-dev=2.12.1+dfsg-5+deb12u3 \ libpng-dev \ libjpeg62-turbo-dev \ libwebp-dev \ libmcrypt-dev \ libbz2-dev \ libcurl4-openssl-dev \ libtidy-dev \ libxslt-dev \ libonig-dev \ libc-client-dev \ libpq-dev \ libkrb5-dev \ libsqlite3-dev \ freetds-dev \ freetds-bin # Cleanup APT RUN rm -rf \ /var/lib/apt/lists/* \ /usr/share/man/* \ /usr/share/doc/* \ /etc/nginx/sites-enabled # Install PHP extensions RUN docker-php-ext-install \ mbstring \ xml \ dom \ zip \ intl \ gd \ curl \ calendar \ pdo_sqlite \ bcmath # Install Node.js RUN npm install -g n && n 18 # Apply configs COPY ./docker/conf/* / # Configure project WORKDIR /tmp # Install project COPY . . RUN npm install \ && npm run build \ && mv /tmp/dist/* /tmp/api /var/www/html WORKDIR /var/www/html RUN cp config.js.ci config.js \ && sed -i "s/{APP_URL}/$APP_URL/g" config.js \ && chown www-data:www-data . -R COPY ./entrypoint.sh / CMD ["/bin/bash", "/entrypoint.sh"]