- Initialización de contenedores de bases de datos (MariaDB)
- Backup e importación de base de datos en mysql
- Monitorización Grafana + Prometheus
- Replicación de base de datos
- Docker
- Docker-compose
- Git
- Baids
Lo primero es cargar las variables necesarias que la podemos encontrar en el .env
.
Creamos el directorio del proyecto.
mkdir -p $PROJECTS_DIR
Clonar el repositorio en el directorio creado para el proyecto
git clone https://github.com/jonathanmarquezj/2-entorno-drupal-con-docker.git $PROJECT_DIR
Creamos la estructura de directorios.
mkdir $PROJECT_DIR/volumen/mysql mkdir $PROJECT_DIR/volumen/files mkdir -p $PROJECT_DIR/backup/mysql
Para crear las imagenes necesarias ejecutamos el siguiente comando.
docker build -t "jonathan-drupal" $PROJECT_DIR/drupal docker build -t "jonathan-nginx" $PROJECT_DIR/nginx
- Haproxy: Sera el encargado de balancear la carga del puerto 80 a los nginx.
- Nginx: Es el servicio web, esta escalado a 2, para que el balanceador de carga funcione.
- Db: La base de datos para el Drupal.
- Drupal con PHP-fmp: Sera el servicio con PHP y tendrá la aplicación de Drupal.
- Fluent-bit: Es el encargado de recolectar los Log de los contenedores con los servicios.
- Loki: Es como el interprete para proporcionar los datos a Grafana.
- Grafana: Es la aplicación que se encargara de visualizar los registros de los contenedores. Para entrar ponemos en el navegador "localhost:3000".
Lo primero es instalar los paquetes necesarios para poder ejecutar los Baids, accede a aqui para la instalación.
Es tan facil como poner el siguiente codigo para la instalacion.
curl -sSL https://raw.githubusercontent.com/rcmorano/baids/master/baids | bash -s install
El siguiente paso es crear el enlace y recargamos los baids
ln -fs $PROJECT_DIR/baids $HOME/.baids/functions.d/$PROJECT_NAME baids-reload
Para iniciar el entorno pondremos el siguiente comando.
dev-2-entorno-drupal-con-docker.test-deploy
Comprobamos que funciona con el siguiente comando.
docker-compose ps
Y nos tendra que salir algo como esto.
Name | Command | State | Ports |
---|---|---|---|
2-entorno-drupal-con-docker_nginx_1 | /bin/bash /assets/bin/dock ... | Up | 443/tcp, 80/tcp |
2-entorno-drupal-con-docker_nginx_2 | /bin/bash /assets/bin/dock ... | Up | 443/tcp, 80/tcp |
drupal | docker-php-entrypoint php- ... | Up | 9000/tcp |
fluent-bit | /fluent-bit/bin/fluent-bit ... | Up | 92020/tcp, 0.0.0.0:24224->24224/tcp,:::24224->24224/tcp, 0.0.0.0:24224->24224/udp,:::24224->24224/udp |
grafana | /run.sh | Up | 0.0.0.0:3000->3000/tcp,:::3000->3000/tcp |
haproxy | docker-entrypoint.sh hapro ... | Up | 9000/tcp |
loki | docker-php-entrypoint php- ... | Up | 0.0.0.0:80->80/tcp,:::80->80/tcp,0.0.0.0:8181->8181/tcp,:::8181->8181/tcp |
mysql | docker-entrypoint.sh mysqld | Up | 3306/tcp |
Y si nos dirigimos al "localhost" nos aparecera la web de drupal para comenzar la instalación.
Para eliminar el entorno
dev-2-entorno-drupal-con-docker.test-down
Para entrar en el entorno de la DB
dev-2-entorno-drupal-con-docker.test-mysql-shell
Para realizar la copia de la DB
dev-2-entorno-drupal-con-docker.test-mysql-dump-db
Para realizar la importacion de la DB
dev-2-entorno-drupal-con-docker.test-mysql-import-db < fichero_de_la_copia >