diff --git a/.env.example b/.env.example index 35db1dd..e4808a7 100755 --- a/.env.example +++ b/.env.example @@ -20,12 +20,12 @@ LOG_STACK=single LOG_DEPRECATIONS_CHANNEL=null LOG_LEVEL=debug -DB_CONNECTION=sqlite -# DB_HOST=127.0.0.1 -# DB_PORT=3306 -# DB_DATABASE=laravel -# DB_USERNAME=root -# DB_PASSWORD= +DB_CONNECTION=mysql +DB_HOST=mysql +DB_PORT=3306 +DB_DATABASE=laravel +DB_USERNAME=laravel +DB_PASSWORD=secret SESSION_DRIVER=database SESSION_LIFETIME=120 diff --git a/Dockerfile b/Dockerfile index 9b1a9e6..7aebc4a 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,26 +1,31 @@ FROM php:8.2-fpm +# Install dependencies +RUN apt-get update && apt-get install -y \ + libpng-dev \ + libjpeg-dev \ + libfreetype6-dev \ + zip \ + unzip \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install gd pdo pdo_mysql + +# Install Composer +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + # Set working directory WORKDIR /var/www/html -# Install dependencies -RUN apt-get update && apt-get install -y \ - git \ - curl \ - libpng-dev \ - libonig-dev \ - libxml2-dev \ - zip \ - unzip +# Copy the application code +COPY . . -# Clear cache -RUN apt-get clean && rm -rf /var/lib/apt/lists/* - -# Install PHP extensions -RUN docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd - -# Install Composer -COPY --from=composer:latest /usr/bin/composer /usr/bin/composer +# Install Laravel dependencies +RUN composer install --no-dev --optimize-autoloader # Set permissions -RUN chown -R www-data:www-data /var/www/html +RUN chown -R www-data:www-data /var/www/html/storage /var/www/html/bootstrap/cache + +# Expose port +EXPOSE 9000 + +CMD ["php-fpm"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index b52c3c7..7ceb0bd 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -39,6 +39,8 @@ services: timeout: 5s retries: 5 command: ["/var/www/html/start.sh"] + command: > + sh -c "sleep 10 && php artisan migrate --force && php-fpm" restart: unless-stopped nginx: @@ -62,3 +64,4 @@ networks: volumes: mysql-data: + mysql-data: diff --git a/nginx.conf b/nginx.conf new file mode 100644 index 0000000..e1fec47 --- /dev/null +++ b/nginx.conf @@ -0,0 +1,22 @@ +server { + listen 80; + server_name localhost; + + root /var/www/html/public; + index index.php index.html; + + location / { + try_files $uri $uri/ /index.php?$query_string; + } + + location ~ \.php$ { + fastcgi_pass laravel:9000; + fastcgi_index index.php; + fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; + include fastcgi_params; + } + + location ~ /\.ht { + deny all; + } +}