feat: init docker

This commit is contained in:
rinsvent 2026-05-17 18:56:40 +07:00
commit e73edc18d2
2 changed files with 80 additions and 0 deletions

15
Dockerfile Normal file
View File

@ -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"]

65
docker-compose.yml Normal file
View File

@ -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: