Neden Docker?
Docker, uygulamanızı tüm bağımlılıklarıyla birlikte izole bir ortamda çalıştırmanızı sağlar. "Benim bilgisayarımda çalışıyor" sorununu ortadan kaldırır ve geliştirme ortamını standartlaştırır.
1. docker-compose.yml
# docker-compose.yml
version: '3.8'
services:
app:
build: .
ports:
- "8080:80"
volumes:
- ./src:/var/www/html
depends_on:
- db
- redis
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: root123
MYSQL_DATABASE: app_db
ports:
- "3306:3306"
volumes:
- db_data:/var/lib/mysql
redis:
image: redis:alpine
ports:
- "6379:6379"
volumes:
db_data:
2. Dockerfile
FROM php:8.2-apache
RUN docker-php-ext-install pdo pdo_mysql mysqli
RUN pecl install redis \
&& docker-php-ext-enable redis
RUN a2enmod rewrite
COPY ./src /var/www/html/
RUN chown -R www-data:www-data /var/www/html
EXPOSE 80
3. Konteyner Yönetimi
# Başlat
docker-compose up -d
# Logları izle
docker-compose logs -f app
# Container'a bağlan
docker-compose exec app bash
# Durdur ve temizle
docker-compose down
docker-compose down -v # volume'ları da sil