From 0671fdcbf80c59addd77693e5eeda8ae2431d7be Mon Sep 17 00:00:00 2001 From: Lutfi Hakim Date: Thu, 12 Mar 2026 10:26:30 +0700 Subject: [PATCH] feat:create deployment setup --- Dockerfile | 38 ++++++++++++++++++++++++++++++++++++++ docker-compose.yml | 38 ++++++++++++++++++++++++++++++++++++++ nginx/conf.d/app.conf | 23 +++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 nginx/conf.d/app.conf diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5495a09 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,38 @@ +FROM php:8.2-fpm + +# Set working directory +WORKDIR /var/www + +# 1. Install system dependencies & NODE.JS (Kita gabung disini) +RUN apt-get update && apt-get install -y \ + git \ + curl \ + libpng-dev \ + libonig-dev \ + libxml2-dev \ + zip \ + unzip \ + libzip-dev \ + libicu-dev \ + libjpeg62-turbo-dev \ + libfreetype6-dev \ + gnupg \ + && curl -fsSL https://deb.nodesource.com/setup_20.x | bash - \ + && apt-get install -y nodejs \ + && apt-get clean && rm -rf /var/lib/apt/lists/* + +# Config & Install PHP extensions +RUN docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip intl + +# Get latest Composer +COPY --from=composer:latest /usr/bin/composer /usr/bin/composer + +# Copy files +COPY . /var/www + +# Set Permission +RUN chown -R www-data:www-data /var/www/storage /var/www/bootstrap/cache + +EXPOSE 9000 +CMD ["php-fpm"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..c42e1b1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +version: '3' + +services: + sig_php: + build: + context: . + dockerfile: Dockerfile + image: sig-app + container_name: sig-php-container + restart: unless-stopped + working_dir: /var/www + volumes: + - .:/var/www + networks: + - sig-network + - laravel-network + + sig_nginx: + image: nginx:alpine + container_name: sig-nginx-container + restart: unless-stopped + ports: + - "8089:80" + volumes: + - .:/var/www + - ./nginx/conf.d:/etc/nginx/conf.d + networks: + - sig-network + depends_on: + - sig_php + +networks: + sig-network: + driver: bridge + + laravel-network: + external: true + name: bpbd_laravel-network diff --git a/nginx/conf.d/app.conf b/nginx/conf.d/app.conf new file mode 100644 index 0000000..3b00f6f --- /dev/null +++ b/nginx/conf.d/app.conf @@ -0,0 +1,23 @@ +server { + listen 80; + server_name sig-tpsnganjuk.web.id + + root /var/www/public; + index index.php index.html; + + access_log /var/log/nginx/sig_access.log; + error_log /var/log/nginx/sig_error.log; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_split_path_info ^(.+\.php)(/.+)$; + fastcgi_pass sig_php:9000; + fastcgi_index index.php; + include fastcgi_params; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } +}