commit e73edc18d21adba7f2492896846175eebdff1f54 Author: rinsvent Date: Sun May 17 18:56:40 2026 +0700 feat: init docker diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5bcf7f1 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM php:8.3-fpm + +RUN apt-get update && apt-get install -y --no-install-recommends \ + unzip \ + libzip-dev \ + && docker-php-ext-install pdo_mysql zip \ + && pecl install redis \ + && docker-php-ext-enable redis \ + && rm -rf /var/lib/apt/lists/* + +COPY --from=composer:2 /usr/bin/composer /usr/bin/composer + +WORKDIR /app + +CMD ["php-fpm"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..16a5ba8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,65 @@ +services: + app: + build: + context: . + dockerfile: Dockerfile + container_name: stl-app + restart: unless-stopped + volumes: + - .:/app + ports: + - "${APP_PORT:-8080}:8000" + environment: + APP_ENV: local + APP_DEBUG: "true" + APP_URL: http://localhost:${APP_PORT:-8080} + DB_CONNECTION: mysql + DB_HOST: mysql + DB_PORT: 3306 + DB_DATABASE: slots + DB_USERNAME: slots + DB_PASSWORD: slots + CACHE_STORE: redis + REDIS_HOST: redis + REDIS_PORT: 6379 + depends_on: + mysql: + condition: service_healthy + redis: + condition: service_started +# command: > +# sh -c " +# composer install --no-interaction && +# php artisan migrate --force && +# php artisan db:seed --class=SlotSeeder --force && +# php artisan serve --host=0.0.0.0 --port=8000 +# " + + mysql: + image: mysql:8.4 + container_name: stl-mysql + restart: unless-stopped + environment: + MYSQL_DATABASE: slots + MYSQL_USER: slots + MYSQL_PASSWORD: slots + MYSQL_ROOT_PASSWORD: root + ports: + - "${MYSQL_PORT:-3306}:3306" + volumes: + - mysql_data:/var/lib/mysql + healthcheck: + test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-uslots", "-pslots"] + interval: 5s + timeout: 5s + retries: 10 + + redis: + image: redis:7-alpine + container_name: stl-redis + restart: unless-stopped + ports: + - "${REDIS_PORT:-6379}:6379" + +volumes: + mysql_data: