61 lines
2.7 KiB
Docker
61 lines
2.7 KiB
Docker
###############################################################################
|
|
# KOIPB MAT — PHP-FPM Runtime Image
|
|
# Sistem Kehadiran & Cabutan Bertuah Mesyuarat Agung Tahunan KOIPB
|
|
# PHP 8.4 + extension Laravel (pdo_mysql, gd, zip, intl, opcache, ...)
|
|
###############################################################################
|
|
FROM php:8.4-fpm
|
|
|
|
LABEL org.opencontainers.image.title="KOIPB MAT" \
|
|
org.opencontainers.image.description="Sistem Kehadiran & Cabutan Bertuah MAT KOIPB"
|
|
|
|
# ── System libraries ──────────────────────────────────────────────────────────
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
git \
|
|
curl \
|
|
zip \
|
|
unzip \
|
|
# zip extension (openspout XLSX = zip-based)
|
|
libzip-dev \
|
|
# GD: PNG, JPEG, FreeType
|
|
libpng-dev \
|
|
libjpeg62-turbo-dev \
|
|
libfreetype6-dev \
|
|
# mbstring
|
|
libonig-dev \
|
|
# xml / intl
|
|
libxml2-dev \
|
|
libicu-dev \
|
|
# mysql client (wait-for-db dalam entrypoint)
|
|
default-mysql-client \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
# ── GD ────────────────────────────────────────────────────────────────────────
|
|
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
|
|
&& docker-php-ext-install -j"$(nproc)" gd
|
|
|
|
# ── Core PHP extensions ───────────────────────────────────────────────────────
|
|
RUN docker-php-ext-install -j"$(nproc)" \
|
|
pdo_mysql \
|
|
mbstring \
|
|
exif \
|
|
pcntl \
|
|
bcmath \
|
|
zip \
|
|
intl \
|
|
opcache
|
|
|
|
# ── Composer ──────────────────────────────────────────────────────────────────
|
|
COPY --from=composer:2 /usr/bin/composer /usr/bin/composer
|
|
|
|
# ── Working directory ─────────────────────────────────────────────────────────
|
|
WORKDIR /var/www/html
|
|
|
|
# ── Entrypoint ────────────────────────────────────────────────────────────────
|
|
COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/entrypoint.sh
|
|
|
|
EXPOSE 9000
|
|
|
|
ENTRYPOINT ["entrypoint.sh"]
|
|
CMD ["php-fpm"]
|