From dcf125fae071e88355fff255df343c2511edc4b6 Mon Sep 17 00:00:00 2001 From: Lutfi Hakim Date: Fri, 10 Apr 2026 21:16:40 +0700 Subject: [PATCH] feat: setup deployment --- Dockerfile | 32 ++++++++++++++++++++++++++++++++ docker-compose.yml | 38 ++++++++++++++++++++++++++++++++++++++ nginx/conf.d/app.conf | 23 +++++++++++++++++++++++ 3 files changed, 93 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..5c91233 --- /dev/null +++ b/Dockerfile @@ -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"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..95cb668 --- /dev/null +++ b/docker-compose.yml @@ -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 diff --git a/nginx/conf.d/app.conf b/nginx/conf.d/app.conf new file mode 100644 index 0000000..a3176c9 --- /dev/null +++ b/nginx/conf.d/app.conf @@ -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; + } +}