75 lines
1.9 KiB
Docker
75 lines
1.9 KiB
Docker
|
# syntax=docker/dockerfile:1
|
||
|
FROM php:8.2-apache
|
||
|
|
||
|
#
|
||
|
# Install system packages & dependencies
|
||
|
#
|
||
|
|
||
|
RUN apt-get update && apt-get install -y wget locales
|
||
|
|
||
|
# Composer
|
||
|
RUN wget -O composer-setup.php https://getcomposer.org/installer \
|
||
|
&& php composer-setup.php --install-dir=/usr/local/bin --filename=composer \
|
||
|
&& rm ./composer-setup.php
|
||
|
|
||
|
#
|
||
|
# PHP extensions
|
||
|
#
|
||
|
|
||
|
# GD
|
||
|
RUN apt-get install -y libfreetype6-dev libjpeg62-turbo-dev libpng-dev \
|
||
|
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
|
||
|
&& docker-php-ext-install -j$(nproc) gd
|
||
|
|
||
|
# zip
|
||
|
RUN apt-get install -y libzip-dev \
|
||
|
&& docker-php-ext-configure zip \
|
||
|
&& docker-php-ext-install -j$(nproc) zip
|
||
|
|
||
|
# intl
|
||
|
RUN apt-get install -y libicu-dev \
|
||
|
&& docker-php-ext-configure intl \
|
||
|
&& docker-php-ext-install -j$(nproc) intl
|
||
|
|
||
|
# exif
|
||
|
RUN apt-get install -y exiftool \
|
||
|
&& docker-php-ext-configure exif \
|
||
|
&& docker-php-ext-install -j$(nproc) exif
|
||
|
|
||
|
# MySQL
|
||
|
RUN docker-php-ext-install -j$(nproc) mysqli pdo pdo_mysql
|
||
|
|
||
|
# Install Node.js
|
||
|
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - && apt-get install -y nodejs
|
||
|
|
||
|
# Configure Apache2
|
||
|
COPY deploy/apache/metin2.conf /etc/apache2/sites-available/metin2.conf
|
||
|
RUN echo "ServerName localhost" >> /etc/apache2/apache2.conf && \
|
||
|
a2enmod rewrite && \
|
||
|
a2enmod remoteip && \
|
||
|
a2dissite 000-default && \
|
||
|
a2ensite metin2
|
||
|
|
||
|
# Copy the configuration files
|
||
|
COPY deploy/php/*.ini /usr/local/etc/php/conf.d/
|
||
|
COPY deploy/php/prod/*.ini /usr/local/etc/php/conf.d/
|
||
|
|
||
|
# Copy the source code
|
||
|
RUN mkdir /app
|
||
|
WORKDIR /app
|
||
|
COPY . .
|
||
|
|
||
|
# Install the dependencies
|
||
|
RUN composer install --no-ansi --no-interaction --no-plugins --no-progress --no-scripts --optimize-autoloader
|
||
|
RUN npm ci && npm run build
|
||
|
|
||
|
# Make the init script executable
|
||
|
RUN chmod +x /app/deploy/init.sh
|
||
|
|
||
|
# Expose the API on port 80
|
||
|
EXPOSE 80
|
||
|
|
||
|
# Run supervisord for handling the container services
|
||
|
ENTRYPOINT ["/bin/sh", "-c"]
|
||
|
CMD ["/app/deploy/init.sh"]
|