feat:create deployment setup

This commit is contained in:
Lutfi Hakim 2026-03-12 10:26:30 +07:00
parent 060b916e40
commit 0671fdcbf8
3 changed files with 99 additions and 0 deletions

38
Dockerfile Normal file
View File

@ -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"]

38
docker-compose.yml Normal file
View File

@ -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

23
nginx/conf.d/app.conf Normal file
View File

@ -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;
}
}