37 lines
883 B
Docker
37 lines
883 B
Docker
# syntax=docker/dockerfile:1
|
|
FROM dunglas/frankenphp:php8.2-alpine
|
|
|
|
#
|
|
# Install system packages & dependencies
|
|
#
|
|
|
|
RUN apk update && apk add wget npm
|
|
|
|
# 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
|
|
#
|
|
RUN install-php-extensions pcntl gd zip intl exif mysqli pdo pdo_mysql
|
|
|
|
# Copy the source code
|
|
WORKDIR /app
|
|
COPY . /app
|
|
|
|
# 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/docker/init-frankenphp.sh
|
|
|
|
# Expose the API on port 80
|
|
EXPOSE 80
|
|
|
|
# Run supervisord for handling the container services
|
|
ENTRYPOINT ["/bin/sh", "-c"]
|
|
CMD ["/app/docker/init-frankenphp.sh"]
|