Cómo crear un container de Docker con PHP 8, Nginx y MySQL
En ocasiones es necesario contar con un entorno de trabajo en PHP limpio para iniciar un nuevo proyecto o hacer experimentos. Este recurso gratuito te ayudará a configurar un ambiente de desarrollo de manera rápida utilizando Docker.
¿Cuál será el resultado final?
Al finalizar la instalación, contarás con:
- Un entorno de trabajo basado en PHP 8.2.13 con Nginx (nginx:stable-alpine) como servidor web.
- Un container de MySQL 8.0.37 para gestionar bases de datos.
- Acceso web a través de la URL http://envphp.local.
Prerequisitos
Antes de comenzar, asegúrate de contar con lo siguiente:
- Docker versión 23 o superior
- Docker Compose versión v1.29.2 o superior
- Conocimientos básicos de comandos Docker (puedes revisar esta lista de comandos Docker)
Si aún no tienes Docker instalado, puedes consultar la documentación oficial: https://docs.docker.com/engine/install/
Pasos para la instalación
Clonar el proyecto
Ejecuta el siguiente comando para clonar el repositorio que contiene el entorno preconfigurado.
git clone git@github.com:dqblanco/help-commands.git
Copiar archivos a tu proyecto
Copia la carpeta interna ubicada en ./help-commands/Docker/EnvPHP/ hacia la carpeta de tu proyecto.
cd ~/Documents/Projects/
mkdir myproject
cp -R ~/Documents/Projects/help-commands/Docker/EnvPHP/* ~/Documents/Projects/myproject/
Nota: Recuerda cambiar la ruta ~/Documents/Projects/ por la ruta que usas para tus proyectos.
Dentro de myproject deberías tener la carpeta docker.
Acceder a la carpeta docker del proyecto.
cd ~/Documents/Projects/myproject/docker
Configurar el entorno
Duplica el archivo .env.dist, cambiando el nombre a .env
cp .env.dist .env
Agregar el nuevo host
Abre el archivo de hosts.
sudo vim /etc/hosts
Agrega las siguientes la linea.
127.0.0.1 envphp.local
Guarda y cierra el archivo.
Iniciar los containers
Ejecuta el siguiente comando para iniciar los containers en segundo plano.
docker compose up -d
Si todo está bien, deberías poder acceder a http://envphp.local/ y ver la ejecución del index.php.
Acceder al container
Si necesitas entrar al entorno de trabajo dentro del container.
docker exec -it envphp-workspace bash
Nginx apunta al carpeta public del proyecto.
Sobre Mysql
Para conectarte a MySQL:
-
Usuario: root
-
Contraseña: root
-
Host: 127.0.0.1
-
Puerto: 3306
Este recurso es ideal para agilizar la configuración de un entorno PHP sin preocuparse por la instalación manual de cada servicio. ¡Descárgalo y pruebalo en tu próximo proyecto! 🚀