Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Menggunakan image PHP 8.2 FPM berbasis Alpine
- #FROM php:8.2-fpm-alpine
- FROM php:8.4-fpm
- # 1. Update repository dan install dependency menggunakan apt-get
- RUN apt-get update && apt-get install -y \
- nginx \
- libpng-dev \
- libjpeg62-turbo-dev \
- libfreetype6-dev \
- libwebp-dev \
- libcurl4-openssl-dev \
- libxml2-dev \
- && rm -rf /var/lib/apt/lists/*
- # 2. Konfigurasi dan Install ekstensi PHP
- # Perhatikan: Pada Debian, nama library sedikit berbeda dibanding Alpine
- RUN docker-php-ext-configure gd --with-freetype --with-jpeg --with-webp \
- && docker-php-ext-install -j$(nproc) \
- pdo \
- pdo_mysql \
- mysqli \
- gd \
- curl \
- bcmath \
- ctype
- # Pastikan folder log bisa ditulis oleh www-data
- RUN chown -R www-data:www-data /var/log/nginx && \
- chown -R www-data:www-data /var/lib/nginx
- # Buat direktori untuk aplikasi
- WORKDIR /var/www/html
- # Salin konfigurasi Nginx custom ke dalam image
- #COPY ./configs/def.conf /etc/nginx/http.d/default.conf
- COPY ./configs/def.conf /etc/nginx/sites-available/default
- RUN ln -sf /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
- # Salin file source code (opsional, bisa juga via volume)
- COPY ./example /var/www/html
- RUN chown -R www-data:www-data /var/www/html && chmod -R 755 /var/www/html
- # Ekspos port 80
- EXPOSE 80
- # Jalankan PHP-FPM dan Nginx secara bersamaan
- CMD ["sh", "-c", "php-fpm -D && nginx -g 'daemon off;'"]
Advertisement