Docker + Docker Compose + Nginx + PHP-FPM + MySQL

Commands

Build

docker compose build
# docker build -t php:8.2-fpm-alpine-pdo-mysql .

Run

docker compose up -d

Down

docker down -v

Test DB (container needs be up)

docker compose exec db bash

mysql -u root –proot
show databases;

Test DB externally (container needs be up)

mysql -u root -proot -h 127.0.0.1 -P 3311
show databases;

Access nginx container (container needs be up)

docker exec -it docker-example-nginx sh

Install php extension manually (container needs be up, done on build)

docker exec -it php-fpm docker-php-ext-install pdo pdo_mysql
docker compose restart

Config

Add in /etc/hosts this line:

127.0.0.1 docker.localhost

Application access

Inspired in