Sistema de compras montado sobre docker Guillermo Sampallo @gsampallo
- Instalar docker, elegir el instalador según la plataforma. Tutorial paso a paso para instalar docker en Ubuntu.
- Descomprimir el archivo adjunto en una carpeta, por ejemplo /compras.
Se van a crear tres carpetas:
- app: es la carpeta donde se encuentran los php de la aplicacion.
- php: contiene el dockerfile para construir la vm que corre php con las dependencias.
- volumenes: contiene los archivos de la base de datos mysql.
Adicionalmente tambien se va a encontrar un archivo llamado docker-compose.yml, contiene las instrucciones para levantar el ambiente. Se debe reemplazar el usuario/clave para mysql en las lineas:
- MYSQL_ROOT_PASSWORD=passwordroot_cambiar
- MYSQL_USER=usuario_compras
- MYSQL_PASSWORD=password_compras
Luego que se reemplaces, se debe cambiar en el archivo /compras/app/config/parametros.php por los correctos.
Para iniciar el ambiente se debe correr desde la consola dentro de la carpeta /compras
docker-compose up -d
Esta operacion demora varios minutos la primera vez (depende de la conecitividad para descargar los archivos), la primera vez porque debe construir la imagen del contenedor php, crear los archivos de la base de datos, por lo que conectarse a la base puede tardar un poco.
Para chequear que quede corriendo se ejecuta:
docker ps -a
Debe mostrar algo similar a esta captura, los ID y nombres de las imágenes pueden variar:
Para levantar la base de datos se puede usar phpmyadmin que va a estar corriendo en el puerto 8183 del servidor o conectarse al servidor con alguna herramienta como navicat.
Luego de levantar el backup, es conveniente dejar de publicar los puertos de mysql, comentamos las siguientes lineas en el archivo docker-compose.yml:
expose:
- 3306
ports:
- 3306:3306
Luego volvemos a levantar el ambiente con
docker-compose up -d
Si todo funciona bien, accediendo a http://ip_del_servidor/ se podra ingresar al sistema de compras. Si se quiere cambiar el puerto, se hace enel archivo docker-compose.yml en la linea:
expose:
- 80
- 443
ports:
- 80:80
- 443:443