feat: setup deployment

This commit is contained in:
Lutfi Hakim 2026-04-10 21:16:40 +07:00
parent 7a9569e429
commit dcf125fae0
3 changed files with 93 additions and 0 deletions

32
Dockerfile Normal file
View File

@ -0,0 +1,32 @@
FROM php:8.2-fpm
WORKDIR /var/www
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/*
RUN docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip intl
COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
COPY . /var/www
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:
mancontani_php:
build:
context: .
dockerfile: Dockerfile
image: mancontani-app
container_name: mancontani-php-container
restart: unless-stopped
working_dir: /var/www
volumes:
- .:/var/www
networks:
- mancontani-network
- laravel-network
mancontani_nginx:
image: nginx:alpine
container_name: mancontani-nginx-container
restart: unless-stopped
ports:
- "8093:80"
volumes:
- .:/var/www
- ./nginx/conf.d:/etc/nginx/conf.d
networks:
- mancontani-network
depends_on:
- mancontani_php
networks:
mancontani-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 mancontani.web.id;
root /var/www/public;
index index.php index.html;
access_log /var/log/nginx/mancontani_access.log;
error_log /var/log/nginx/mancontani_error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass mancontani_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;
}
}