En este proyecto, pretendo probar formas alternativas para desplegar aplicaciones desarrolladas en cualquier lenguaje y dejarlas funcionando en producción; "independientemente" del servicio de hosting que se use para tal fin. Es obvio, dicho servicio debe soportar esta tecnología, cuyo nombre es Docker.
El proyecto es algo antiguo pero es funcional. Consta de una pequeña aplicación de prueba la cual se ejecutará en un contenedor aislado, pero al que también se puede tener acceso conociendo los parámetros adecuados de red y puerto. También consta de una base de datos, con una tabla y un par de registros ejecutándose en otro contenedor. Se agregaron también 2 contenedores más al proyecto. Uno con la aplicación PhpMyAdmin ya configurada para poder administrar la base de datos importada y otro con MailCatcher; el cual es un servicio que ejecuta un simple servidor SMTP que captura todos los mensajes enviados y los muestra en una interfaz web.
Docker es un proyecto de código abierto que automatiza el despliegue de aplicaciones dentro de contenedores de software, proporcionando una capa adicional de abstracción y automatización de virtualización de aplicaciones en múltiples sistemas operativos.2 Docker utiliza características de aislamiento de recursos del kernel Linux, tales como cgroups y espacios de nombres (namespaces) para permitir que "contenedores" independientes se ejecuten dentro de una sola instancia de Linux, evitando la sobrecarga de iniciar y mantener máquinas virtuales.3.
Cita tomada de Wikipedia
- Docker 17.05.0-ce
- Docker-compose 1.22.0
- Imagenes descargadas desde el repositorio de docker:
- php:7-apache
- mysql:5.7
- phpmyadmin/phpmyadmin
- schickling/mailcatcher
Abra un terminal y ejecute:
git clone http://github.com/pulidovpe/docker-php-mysql.git
cd docker-php-mysqlPara iniciar los contenedores:
docker-compose up -d --buildPara detenerlos:
docker-compose downO para "matar" los servicios y luego eliminarlos:
docker-compose kill
docker-compose rmUna vez ejecutándose, puede abrirse un navegador y dirigirse a la dirección http://localhost:8080 para ver la aplicación web. Ó, si desea revisarse la base de datos usando la aplicación phpmyadmin, basta con dirigirse a la url http://localhost:8181
Para ingresar en la app de PHP puede usar estos valores:
- Usuario: 99009009
- Contraseña: 123456
En caso de que se quisiera entrar a un contenedor sin usar el docker-compose, puede hacerse ejecutándolo de manera individual:
docker run -it mysql bashAl usarse las banderas -it esto nos permitira iniciar el contenedor (basandose en la imagen elegida) en modo interactivo en el terminal por defecto. Y en este caso, en un consola.
- Inicialización de repositorio
- Instalación de Docker
- Instalación de Docker-compose
- Desarrollo de aplicación web en PHP
- Pruebas en local
- Actualización de repositorio
- Despliegue en heroku
- Has un Fork
- Crea tu propia rama (git checkout -b feature/fooBar)
- Sube tus cambios (git commit -am 'Add some fooBar')
- Actualiza tu rama (git push origin feature/fooBar)
- Has un "Pull Request"
En este proyecto, me he guiado de la documentacion oficial de Docker y de diversos blogs de tecnología.
Pulido V.P.E. – @github/pulidovpe – pulidovpe.dev@gmail.com Distributed under the MIT license. See LICENSE for more information.