Contenedorizar una aplicación PHP
Requisitos previos
- Has instalado la última versión de Docker Desktop.
- Tienes un cliente de git. Los ejemplos de esta sección utilizan un cliente de git basado en línea de comandos, pero puedes utilizar cualquier cliente.
Descripción general
Esta sección te guía a través de la contenedorización y ejecución de una aplicación PHP.
Obtener la aplicación de ejemplo
En esta guía, utilizarás una aplicación PHP preconstruida. La aplicación utiliza Composer para la gestión de dependencias de bibliotecas. Servirás la aplicación a través de un servidor web Apache.
Abre una terminal, cambia de directorio a un directorio en el que quieras trabajar y ejecuta el siguiente comando para clonar el repositorio.
$ git clone https://github.com/docker/docker-php-sample
La aplicación de ejemplo es una aplicación básica de "hola mundo" y una aplicación que incrementa un contador en una base de datos. Además, la aplicación utiliza PHPUnit para las pruebas.
Inicializar los recursos de Docker
Ahora que tienes una aplicación, puedes usar docker init para crear los recursos de Docker necesarios para contenedorizar tu aplicación. Dentro del directorio docker-php-sample, ejecuta el comando docker init en una terminal. docker init proporciona cierta configuración predeterminada, pero tendrás que responder algunas preguntas sobre tu aplicación. Por ejemplo, esta aplicación utiliza la versión 8.2 de PHP. Consulta el siguiente ejemplo de docker init y utiliza las mismas respuestas para tus indicaciones.
$ docker init
Welcome to the Docker Init CLI!
This utility will walk you through creating the following files with sensible defaults for your project:
- .dockerignore
- Dockerfile
- compose.yaml
- README.Docker.md
Let's get started!
? What application platform does your project use? PHP with Apache
? What version of PHP do you want to use? 8.2
? What's the relative directory (with a leading .) for your app? ./src
? What local port do you want to use to access your server? 9000
Ahora deberías tener el siguiente contenido en tu directorio docker-php-sample.
├── docker-php-sample/
│ ├── .git/
│ ├── src/
│ ├── tests/
│ ├── .dockerignore
│ ├── .gitignore
│ ├── compose.yaml
│ ├── composer.json
│ ├── composer.lock
│ ├── Dockerfile
│ ├── README.Docker.md
│ └── README.mdPara obtener más información sobre los archivos que agregó docker init, consulta lo siguiente:
Ejecutar la aplicación
Dentro del directorio docker-php-sample, ejecuta el siguiente comando en una terminal.
$ docker compose up --build
Abre un navegador y visita la aplicación en http://localhost:9000/hello.php. Deberías ver una aplicación sencilla de "hola mundo".
En la terminal, presiona ctrl+c para detener la aplicación.
Ejecutar la aplicación en segundo plano
Puedes ejecutar la aplicación desacoplada (detached) de la terminal agregando la opción -d. Dentro del directorio docker-php-sample, ejecuta el siguiente comando en una terminal.
$ docker compose up --build -d
Abre un navegador y visita la aplicación en http://localhost:9000/hello.php. Deberías ver una aplicación sencilla de "hola mundo".
En la terminal, ejecuta el siguiente comando para detener la aplicación.
$ docker compose down
Para obtener más información sobre los comandos de Compose, consulta la referencia de la CLI de Compose.
Resumen
En esta sección, aprendiste cómo puedes contenedorizar y ejecutar una aplicación PHP sencilla usando Docker.
Información relacionada:
Pasos siguientes
En la siguiente sección, aprenderás cómo puedes desarrollar tu aplicación utilizando contenedores de Docker.