Lo más limpio es agregar un docker-compose.override.yml en tu proyecto Sail (así no tocas el docker-compose.yml generado). Ahí definís phpMyAdmin (para MySQL/MariaDB) o pgAdmin (para PostgreSQL).
Sail carga automáticamente los
*-override.ymlsi están en la raíz del proyecto.
Opción A — phpMyAdmin (MySQL/MariaDB)
Crea docker-compose.override.yml con:
services:
phpmyadmin:
image: phpmyadmin:latest
depends_on:
- mysql # o "mariadb" si usás ese servicio
environment:
PMA_HOST: ${DB_HOST:-mysql} # host del servicio MySQL/MariaDB
PMA_PORT: ${FORWARD_DB_PORT:-3306} # puerto interno del contenedor DB
# Opcional si querés autologin con root (si definís root pass en tu DB):
# MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-secret}
ports:
- "${FORWARD_PHPMYADMIN_PORT:-8081}:80" # http://localhost:8081
networks:
- sail
networks:
sail:
external: true
name: ${APP_SERVICE:-sail} # red que crea Sail (normalmente "sail")
Luego:
./vendor/bin/sail up -d
Entrás en http://localhost:8081.
Servidor: mysql (o mariadb), Usuario/Clave: los de tu .env (DB_USERNAME / DB_PASSWORD).
Si usás
mariadben Sail, cambiadepends_onamariadbyPMA_HOSTamariadb.
Opción B — pgAdmin (PostgreSQL)
En el mismo docker-compose.override.yml (o en otro), agrega:
services:
pgadmin:
image: dpage/pgadmin4:latest
depends_on:
- pgsql
environment:
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: admin123
ports:
- "${FORWARD_PGADMIN_PORT:-8082}:80" # http://localhost:8082
volumes:
- pgadmin_data:/var/lib/pgadmin
networks:
- sail
volumes:
pgadmin_data:
driver: local
networks:
sail:
external: true
name: ${APP_SERVICE:-sail}
Levanta:
./vendor/bin/sail up -d
Entrás en http://localhost:8082 con el email/clave de arriba.
Dentro de pgAdmin, Add New Server y usa:
- Name:
Local - Host name/address:
pgsql - Port:
5432 - Username/Password: los de tu
.env(DB_USERNAME/DB_PASSWORD)
Notas útiles
- Si cambiás los puertos, podés setear variables en
.envdel host:FORWARD_PHPMYADMIN_PORT=8081 FORWARD_PGADMIN_PORT=8082 - Si ya tenías los contenedores arriba y no aparecen los nuevos servicios:
./vendor/bin/sail down ./vendor/bin/sail up -d - Con
mysqlen Sail, el root suele no tener password. Usá el usuario app (DB_USERNAME) o configuraMYSQL_ROOT_PASSWORDen el servicio DB y reflotalo.


Dejá una respuesta