From e1efce8d59a687ae7cf1e765bf749ce905411d53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D1=82=D0=BE=D0=BD=20=D0=9C=D0=B8=D1=85=D0=B0?= =?UTF-8?q?=D0=B9=D0=BB=D0=BE=D0=B2?= Date: Wed, 10 Jun 2026 15:22:13 +0300 Subject: [PATCH] added docker settings and basic env config --- .env.example | 55 ++++++++++++++++++++++++++++++++++++++++++++++ .gitignore | 38 ++++++++++++++++++++++++++++++++ Makefile | 25 +++++++++++++++++++++ docker-compose.yml | 39 ++++++++++++++++++++++++++++++++ 4 files changed, 157 insertions(+) create mode 100644 .env.example create mode 100644 .gitignore create mode 100644 Makefile create mode 100644 docker-compose.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..e2366f4 --- /dev/null +++ b/.env.example @@ -0,0 +1,55 @@ +APP_NAME=Laravel +APP_ENV=local +APP_KEY= +APP_DEBUG=true +APP_TIMEZONE=UTC +APP_URL=http://localhost:8080 + +APP_LOCALE=en +APP_FALLBACK_LOCALE=en +APP_FAKER_LOCALE=en_US + +APP_MAINTENANCE_DRIVER=file + +BCRYPT_ROUNDS=12 + +LOG_CHANNEL=stack +LOG_STACK=single +LOG_LEVEL=debug + +# Настройки подключения к MySQL в Docker +DB_CONNECTION=mysql +DB_HOST=db +DB_PORT=3306 +DB_DATABASE=gigs_api +DB_USERNAME=gigs_api +DB_PASSWORD=gigs_api + +SESSION_DRIVER=database +SESSION_LIFETIME=120 +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null + +BROADCAST_CONNECTION=log +FILESYSTEM_DISK=local +QUEUE_CONNECTION=database + +CACHE_STORE=database +CACHE_PREFIX= + +MEMCACHED_HOST=127.0.0.1 + +REDIS_CLIENT=phpredis +REDIS_HOST=127.0.0.1 +REDIS_PASSWORD=null +REDIS_PORT=6379 + +MAIL_MAILER=log +MAIL_SCHEME=null +MAIL_HOST=127.0.0.1 +MAIL_PORT=2525 +MAIL_USERNAME=null +MAIL_PASSWORD=null +MAIL_FROM_ADDRESS="hello@example.com" +MAIL_FROM_NAME="${APP_NAME}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6975ccf --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Секретные файлы конфигурации (их нельзя пушить!) +.env +.env.backup +.env.production + +# Папка зависимостей Composer +/vendor + +# Папка зависимостей Node.js (фронтенд) +/node_modules +/npm-debug.log +/yarn-error.log + +# Скомпилированные ассеты фронтенда +/public/build +/public/hot +/public/storage + +# Логи и временные файлы Laravel +/storage/*.key +/storage/framework/cache/data/* +/storage/framework/sessions/* +/storage/framework/testing/* +/storage/framework/views/* +/storage/logs/* + +# Исключения для папок Laravel (чтобы Git сохранял саму структуру папок) +!/storage/framework/cache/data/.gitignore +!/storage/framework/sessions/.gitignore +!/storage/framework/testing/.gitignore +!/storage/framework/views/.gitignore +!/storage/logs/.gitignore + +# Файлы окружения IDE и операционных систем +.idea/ +.vscode/ +.DS_Store +Thumbs.db \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..bbc4d6a --- /dev/null +++ b/Makefile @@ -0,0 +1,25 @@ +.PHONY: up down install shell status logs + +# Запуск контейнеров в фоновом режиме +up: + docker compose up -d + +# Остановка и удаление контейнеров +down: + docker compose down + +# Установка зависимостей Composer внутри контейнера web_server +install: + docker compose exec --workdir /var/www/html web composer install + +# Быстрый вход в терминал веб-сервера +shell: + docker compose exec web bash + +# Проверить статус контейнеров +status: + docker compose ps + +# Посмотреть живые логи +logs: + docker compose logs -f \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..1803d85 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,39 @@ +services: + # Веб-сервер Apache + PHP + web: + image: webdevops/php-apache:8.2 + container_name: web_server + ports: + - "8080:80" + volumes: + - .:/var/www/html + environment: + - WEB_DOCUMENT_ROOT=/var/www/html/public + networks: + - lamp-network + + # База данных MySQL + db: + image: mysql:8.0 + container_name: db_server + restart: always + environment: + MYSQL_ROOT_PASSWORD: gigs_api + MYSQL_DATABASE: gigs_api + MYSQL_USER: gigs_api + MYSQL_PASSWORD: gigs_api + ports: + - "3306:3306" + volumes: + - db_data:/var/lib/mysql + networks: + - lamp-network + +networks: + lamp-network: + driver: bridge + +volumes: + db_data: + + \ No newline at end of file