github twitter codepen youtube

Cómo ambientar proyectos PHP con Docker

En este tutorial te enseño como crear una aplicación "Hello world!" con PHP en un ambiente de Docker, usando docker podemos ambientar aplicaciones desde nuestra máquina muy facilmente creando rapidamente archivos de configuración.

Step 1 - Crear archivos de ejemplo y Dockerfile

Para este ejemplo creamos una carpeta llamada php-docker-app y dentro de ella tenemos una carpeta src que va contener todos nuestros ficheros php.

Fichero del proyecto php

Enseguida creamos el fichero Dockerfile donde vamos a agregar la siguiente configuración:

FROM php:8.0-apache
COPY src/ /var/www/html/
EXPOSE 80

Step 2 - Instalar la imagen a partir del Dockerfile

Para instalar la imagen que hemos configurado tenemos que estar en el directorio donde se ubica nuestro Dockerfile, en nuestro caso no hay problema lo tenemos dentro de nuestro proyecto así que ejecutemos el siguiente comando:

docker build -t hello-php .

Descargando ficheros de la imagen de Docker

Enseguida comenzará con la descarga de la imagen que le indicamos y una vez terminado podemos ver las imágenes que hemos descargado con el comando docker images.

Ahora si podemos correr nuestra aplicación en la imagen creada con el siguiente comando:

docker run -p 5000:80 -d hello-php

Esté comando solo nos permite servir el fichero index.php de nuestra aplicación y lo que tenemos que hacer es crear un volume de Docker para servir toda la carpeta src y reconozca todos los ficheros de esa carpeta.

Detenemos el proceso que está corriendo actualmente, para ello listamos las imagenes con el comando de abajo.

docker ps

Enseguida le indicamos los primeros 3 dígitos del id del proceso que queremos detener.

docker stop [id-image]

Ahora si servimos la aplicación usando volumes con el siguiente comando:

docker run -p 5000:80 -d -v $(pwd)/src:/var/www/html/ hello-php

El flag -v requiere el directorio que vamos a exponer y el destino donde se serviran los archivos.

Aplicación ejecutándose correctamente

Listo ya tenemos nuestra aplicación corriendo el la imagen de Docker y ya podemos navegar entre los diferentes archivos que se encuentren en nuestro directorio src y docker los reconocerá.

Crear ficheros desde la terminal de la imagen de Docker

Podemos también crear ficheros desde la terminal que está sirviendo nuestra app y estos se verán reflejados automáticamente en nuestro ambiente local y viceversa.

Para ingresar a la terminal debemos indicarle el id del proceso de la imagen(primeros 3 dígitos) a la que queremos acceder con el siguiente comando:

docker exec -it [id-image] bash

Una vez dentro podemos crear ficheros por ejemplo un fichero about.php con el comando touch about.php, esté se creara enseguida en nuestro editor de código y lo mismo ocurriría si lo creamos desde el IDE.

Para salir de la terminal presionamos el metacomando Ctrl + d.

Algunos comando útiles

  • Eliminar las instancias de los procesos creados
docker rm $(docker ps -aq)
  • Construir una imagen a partir de una existente agregandole una version
docker build -t hello-php:1.0 .
  • Cambiar el nombre del repositorio de una imagen existente
docker image tag hello-php:latest  php-7.4

Referencias

🔗 https://hub.docker.com/_/php/

🔗 https://docs.docker.com/storage/volumes/

🔗 https://github.com/docker-library/official-images

Finalizamos

Hemos llegado al final de este tutorial, Docker sin duda es una herramienta muy util para los desarrolladores, este tutorial es muy introductorio pero nos da un primer acercamiento de como podemos usar Docker, espero te haya sido de ayuda.

No olvides suscribirte a mi canal de YouTube donde subo contenido acerca del mundo de la programación y el desarrollo web, sígueme en mis redes sociales para que estés al tanto de los próximos contenidos,

Sin más que decir nos leemos en la próxima, ¡Hasta la próxima hacker!