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
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
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
...
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.
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
Copiar el archivo .env-example y ajusta las variables de entorno a gusto
cp composefiles/.env-example composefiles/.env
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
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
docker-compose -f composefiles/compose_sonarqube.yml down
docker-compose -f composefiles/compose_webserver.yml down
docker exec -it php_fpm composer **command**
Cualquier recomendación de mejora o crítica constructiva es bienvenida.