From 33039362cc8c56b489a30db560da4c38f8071f36 Mon Sep 17 00:00:00 2001 From: admin Date: Sun, 28 Sep 2025 20:04:02 +0545 Subject: [PATCH] chore: docker file and compose --- Dockerfile | 22 ++++++++++++++++++++ docker-compose.yml | 49 +++++++++++++++++++++++++++++++++++++++++++++ docker/nginx/conf.d | 23 +++++++++++++++++++++ 3 files changed, 94 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 docker/nginx/conf.d diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e8fd268 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM php:8.2-fpm + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + git curl zip unzip libpng-dev libonig-dev libxml2-dev libzip-dev \ + && docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip + +# Install Composer +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +# Set working directory +WORKDIR /var/www + +# Copy existing application code +COPY . . + +# Install Laravel dependencies +RUN composer install --no-dev --optimize-autoloader + +# Give permission +RUN chown -R www-data:www-data /var/www \ + && chmod -R 755 /var/www/storage /var/www/bootstrap/cache diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..927f5a5 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,49 @@ +version: '3.8' + +services: + app: + build: + context: . + dockerfile: Dockerfile + image: laravel-app + container_name: laravel-app + restart: unless-stopped + working_dir: /var/www + volumes: + - .:/var/www + networks: + - laravel + + webserver: + image: nginx:alpine + container_name: laravel-webserver + restart: unless-stopped + ports: + - '8080:80' + volumes: + - .:/var/www + - ./docker/nginx/conf.d:/etc/nginx/conf.d + networks: + - laravel + + db: + image: mysql:8.0 + container_name: laravel-db + restart: unless-stopped + environment: + MYSQL_DATABASE: soorya + MYSQL_ROOT_PASSWORD: root + MYSQL_USER: laravel + MYSQL_PASSWORD: laravel + volumes: + - dbdata:/var/lib/mysql + ports: + - '3306:3306' + networks: + - laravel + +networks: + laravel: + +volumes: + dbdata: diff --git a/docker/nginx/conf.d b/docker/nginx/conf.d new file mode 100644 index 0000000..6d04384 --- /dev/null +++ b/docker/nginx/conf.d @@ -0,0 +1,23 @@ +server { + listen 80; + index index.php index.html; + server_name localhost; + + root /var/www/public; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + include fastcgi_params; + fastcgi_pass app:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; + fastcgi_param PATH_INFO $fastcgi_path_info; + } + + location ~ /\.ht { + deny all; + } +}