Skip to content

Laboratorio Final

Laboratorio Final

Laboratorio: Desplegando componentes en un ambiente de desarrollo

Descripción

La compañia para la que trabaja le ha solicitado configurar un ambiente de prueba para un servicio que están validando y debe estar disponible lo antes posible, para poder presentar un prueba de concepto a los interesados.

Requerimientos:

El servicio cuenta con los siguiente componentes

  1. Una aplicación web (CMS) Wordpress versión 6.0.1
  2. Una base de datos relacional MariaDB versión 10.8.3
  3. Un API de consultas que será invocado por Wordpress y otros clientes de la compañia. Esta construido en pytho y el equipo de desarrollo publica el código en github.com.
  4. El equipo requiere una interfaz web por la cual puedan acceder bajo demanda para consultar la base de datos.

Consideraciones

  1. Utilizar imagenes oficiales para lo que sea posible, deberá investigar la forma de utilizar estas imágenes.
  2. El puerto de la base de datos no debe ser expuesto fuera del Host de pruebas
  3. El puerto de Wordpress debe ser 30080
  4. El puerto del API app de nuestros desarrolladores debe ser 30081
  5. En el repositorio de github.com (https://github.com/xandradx/democontainerapp.git). Existen varios archivos Dockerfile, construya y pruebe la imágen de contenedor y decida en base a su conocimiento cual es la mejor opción para utilizar.
  6. Se requiere utilizar una red distinta a la por defecto para los contenedores.
  7. El sistema de prueba, no debe tener en ejecución otro contenedor y/o imagenes que no sean necesarias para la prueba de concepto.
  8. Para la interfaz web para acceder a la DB, se ha decidido utilizar phpmyadmin en la última versión (latest) y deberá exponerse en el puerto 30082 bajo demanda y deberá eliminarse automáticamente.
  9. Todos los componentes deben tener limitado el consumo de recursos, de acuerdo a esta tabla:
COMPONENTE CPU MEM
Wordpress 0.5 2Gi
MariaDB 0.5 1Gi
phpmyadmin 0.25 1Gi
  1. No es necesario que se haga con docker compose.
  2. Credenciales deben ser de acuerdo a la siguiente tabla:
COMPONENTE USUARIO CONTRASEÑA
Wordpress admin admin.estudiante#
(ejemplo: admin.estudiante16)
MariaDB root AUTOGENERADO
MariaDB otros Definidos por el estudiante
Deberá crear una base de datos y usuario para wordpress, con sus credenciales
  1. Para este laboratorio no es obligartorio utilizar volumenes.

Referencias

  1. Script de inicialización de contenedor temporal.

    #!/bin/bash
    # Debe validar los permisos necesarios y la ubicación de este script, así como completarlo.
    
    if [ ! $# -eq 1 ]
    then
     echo "Uso: $0 start|stop"
     exit 1
    fi
    
    case $1 in
      "start")
      ### Agregar los comandos necesario para iniciar phpmyadmin en segundo plano
      echo "Iniciando phpmyadmin"
      ;;
      "stop")
      ### Agregar los comandos necesario para detenet phpmyadmin en segundo plano
      echo "Deteniendo phpmyadmin"
      ;;
      *)
      echo "Error e uso"
      exit 2
      ;;
    esac
    

  2. Clonar repositorio de git

git clone URL_REPOSITORIO