aonisoft/template-for-wtcm
En desarrollo...
Plantilla de Docker para usar en proyectos web
Introducción
Esta plantilla está pensada para proyectos que utilicen el siguiente stack
tecnológico:
- Apache
- Php-fpm
- MariaDB
- Myphpadmin
Note
Está inspirado en la tecnología XAMPP o LAMPP.
Se considera que quien use esta estructura tiene conocimientos previos mínimos
en:
- Docker
- Docker Compose
- GNU/Linux
- Terminal
- Systemctl
Instalación de docker
Revisar en la guía de instalación
según que distro se esta usando.
Luego activar el servicio de docker. Para distros con systemd como manager de
servicio realizar:
systemctl status docker.service
Si lanza el siguiente mensaje:
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: inactive (dead)
TriggeredBy: ○ docker.socket
Docs: https://docs.docker.com
Se puede activar de dos formas:
- Al iniciar el sistema
- De forma manual antes de usar
Important
Si no usamos todo el tiempo el servicio conviene la última opción por
cuestiones de rendimiento del SO
Iniciar junto con el sistema e iniciar servicio
sudo systemctl enable docker && \
sudo systemctl start docker
Comprobación del status
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Drop-In: /usr/lib/systemd/system/service.d
└─10-timeout-abort.conf
Active: active (running) since ; 19s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 21232 (dockerd)
Tasks: 53
Memory: 115.9M
CPU: 1.664s
CGroup: /system.slice/docker.service
├─21232 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
...
Iniciar de forma manual antes de usar
Para iniciarlo:
sudo systemctl start docker
Para detenerlo:
sudo systemctl stop docker.socket docker.service
Tip
Para evitar el uso de sudo como en sudo docker ... o
sudo docker-compose ... de forma constante se puede agregar el user de
docker al group de nuestro user que utilizamos habitualmente por
ejemplo:
sudo usermod -aG docker $USER
Luego reiniciar la sección y verificar si ya pertenece al group de nuestro user.
La guía oficial para
más información.
Pasos para utilizar los servicios
Primero
Clonar este repositorio dentro de la carpeta que tiene el proyecto web
Por https
git clone https://github.com/aonisoft/docker-structure-website.git .docker && \
cd .docker
Por ssh
git clone git@github.com:aonisoft/docker-structure-website.git .docker && \
cd .docker
Segundo
Copiar el archivo .env-example y ajusta las variables de entorno a gusto
cp composefiles/.env-example composefiles/.env
Levantar los servicios del servidor
Ejecutar el servicio de docker se debe realizar:
Important
Realizar el build la primera vez luego de clonarlo o cuando se tenga que
reconstruir la imagen
docker-compose -f composefiles/compose_webserver.yml build --no-cache
El que levanta todos los servicios php, apache, mariadb y phpmyadmin es:
docker-compose -f composefiles/compose_webserver.yml up -d
Levantar los servicios de sonarqube
Los servicios para ejecutar sonarqube requiere que estén levantados los
servicios del servidor para poder utilizarlo.
Important
Realizar el build la primera vez o cuando se tenga que reconstruir la imagen
docker-compose -f composefiles/compose_sonarqube.yml build --no-cache
docker-compose -f composefiles/compose_sonarqube.yml up -d
Important
Demora unos segundos en iniciar
Bajar los servicios del servidor y sonarqube
docker-compose -f composefiles/compose_sonarqube.yml down
docker-compose -f composefiles/compose_webserver.yml down
Ejecutar composer desde el contenedor
docker exec -it php_fpm composer **command**
Sitios de inspiración
Contribuciones
Cualquier recomendación de mejora o crítica constructiva es bienvenida.