You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.7 KiB
45 lines
1.7 KiB
FROM composer:2 AS vendor |
|
|
|
WORKDIR /app |
|
COPY composer.json composer.lock* ./ |
|
RUN composer config audit.block-insecure false \ |
|
&& composer install --no-dev --no-scripts --optimize-autoloader --no-interaction --ignore-platform-reqs \ |
|
&& test -f vendor/autoload.php |
|
|
|
FROM php:8.3-fpm-bookworm |
|
|
|
RUN apt-get update \ |
|
&& apt-get install -y --no-install-recommends \ |
|
curl gnupg2 apt-transport-https unixodbc-dev nginx supervisor libldap2-dev \ |
|
libpq-dev default-libmysqlclient-dev \ |
|
&& curl -fsSL https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor -o /usr/share/keyrings/microsoft-prod.gpg \ |
|
&& echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft-prod.gpg] https://packages.microsoft.com/debian/12/prod bookworm main" \ |
|
> /etc/apt/sources.list.d/mssql-release.list \ |
|
&& apt-get update \ |
|
&& ACCEPT_EULA=Y apt-get install -y msodbcsql18 \ |
|
&& pecl install sqlsrv pdo_sqlsrv \ |
|
&& docker-php-ext-enable sqlsrv pdo_sqlsrv \ |
|
&& docker-php-ext-install ldap pdo_pgsql pdo_mysql \ |
|
&& apt-get clean && rm -rf /var/lib/apt/lists/* |
|
|
|
WORKDIR /var/www/html |
|
|
|
COPY --from=vendor /app/vendor ./vendor |
|
COPY . . |
|
|
|
RUN mkdir -p storage/framework/{sessions,views,cache} storage/logs bootstrap/cache \ |
|
&& chown -R www-data:www-data storage bootstrap/cache \ |
|
&& chmod -R 775 storage bootstrap/cache |
|
|
|
COPY docker/nginx.conf /etc/nginx/nginx.conf |
|
COPY docker/default.conf /etc/nginx/conf.d/default.conf |
|
COPY docker/supervisord.conf /etc/supervisor/conf.d/supervisord.conf |
|
COPY docker/entrypoint.sh /entrypoint.sh |
|
RUN chmod +x /entrypoint.sh |
|
|
|
EXPOSE 80 |
|
|
|
HEALTHCHECK --interval=60s --timeout=10s --start-period=90s --retries=3 \ |
|
CMD curl -sf http://127.0.0.1/up || exit 1 |
|
|
|
ENTRYPOINT ["/entrypoint.sh"]
|
|
|