Crea tu ambiente de desarrollo PHP & MySQL con Docker

17/08/2019 | Docker, MySQL, PHP | 0 comentarios

Crea tu ambiente de desarrollo PHP / MySQL en Docker de manera sencilla y en minutos.

Descargar archivos

Lo básico para cualquier desarrollador en PHP es tener un ambiente de desarrollo local con las mismas versiones del servidor de producción.

Existen herramientas como MAMP o XAMPP para este trabajo pero dependen del sistema operativo utilizado, sólo permiten una versión de los servicios esto genera problemas de compatibilidad.

Docker al rescate

La forma más sencilla de crear ambientes de desarrollo es con Docker, donde utilizamos el archivo docker-compose.yml para configurar las características (versiones, puertos, variables de entorno, etc) de los servicios que necesitamos.

Los contenedores se crean con el comando:

docker-compose up -d

Los contenedores se manejas con los comandos:

docker-compose start    # Iniciar los contenedores
docker-compose stop     # Detener los contenedores
docker-compose down     # Detener y eliminar los contenedores

Si aún no conoces acerca de Docker te recomiendo leer Simplifica el uso de contenedores con Docker Compose.

Implementando los Servicios

La implementación del ambiente de desarrollo consiste en crear un archivo docker-compose.yml donde vamos a configurar dos servicios:

  • mysql: será el servidor de base de datos MySQL.
  • php: será el servidor web con PHP

Servidor de Base de Datos

Creamos un servidor de base de datos con la imagen de MySQL 5.7, le asignamos el nombre docker-mysql y exponemos el puerto 3306.

Hemos usado el parámetro environment para configurar: base de datos, usuario y clave del servidor de base de datos.

Servidor PHP con Apache

Creamos un servidor web con la imagen de PHP 7.3 con Apache, le asignamos el nombre docker-php y exponemos el puerto 80.

Hemos usado el parámetro volumes para exponer la carpeta de publicación de apache a la carpeta local www/.

Uniendo los servicios

El paso final es unir y enlazar estos servicios, donde agregamos un nuevo parámetro llamado links donde se permite el acceso desde el servicio web hacía el servicio mysql.

Ahora creamos el ambiente de desarrollo con el siguiente comando:

docker-compose up -d

Para acceder al servidor web utiliza la ruta http://localhost donde verás el contenido de la carpeta www/. Para acceder al servidor de base de datos puedes usar las credenciales creadas previamente y el dominio localhost si usas un cliente externo o mysql si te conectas desde el servidor web.

Mejoras finales

Es posible mejorar esta instalación agregando extensiones adicionales de PHP (mysql, pdo, pdo_mysql) o habilitando módulos extras de Apache (rewrite) o incluso usar un archivo de configuración global.

Compartimos un proyecto llamado Docker: PHP & MySQL para crear ambientes de desarrollo local, configurable y con buena documentación.

Referencias

Envíar Comentario

En este sitio los comentarios se publican previa aprobación del equipo de Kodetop. Evita los comentarios ofensivos, obscenos o publicitarios. Si deseas publicar código fuente puedes hacerlo entre las etiquedas <pre></pre>