forked from metin2/web
Added website Docker image, bumped PHP version, added mall authentication, added experimental patcher support, improved migrations, added teasers
This commit is contained in:
74
docker/image/prod/Dockerfile
Normal file
74
docker/image/prod/Dockerfile
Normal file
@ -0,0 +1,74 @@
|
||||
# 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"]
|
Reference in New Issue
Block a user