Commit 0708e637 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Nouvelle infra Docker

parent 4976c350
Loading
Loading
Loading
Loading
Loading

.env.example

0 → 100644
+45 −0
Changes for .env.example: 45 added lines, 0 removed lines.
Original line number Diff line number Diff line
#---------------------------#
#        Application        #
#---------------------------#
# nom de l'application, utilisé pour les conteneurs entres autres.
# pas de caractères spéciaux autorisés
APP_NAME=ose

# Nom d'hôte de l'application (monapp.mondomaine.fr)
APP_HOST=ose.localhost.unicaen.fr

# Nom visible de l'application, à l'affichage
#APP_LABEL=OSE

# Environnement, 3 valeurs possibles : dev, test, prod
APP_ENV=dev

# Fuseau horaire de l'application
#TZ=Europe/Paris

# ID d'utilisateur de la machine hôte
DEV_HOST_USER_ID=1000

# Url personnalisée pour utiliser Vite
#DEV_VITE_URL=http://ose.localhost.unicaen.fr:5133

# Port personnalisé pour utiliser Vite
#DEV_VITE_PORT=5133

#---------------------------#
#        Config Proxy       #
#---------------------------#
# à configurer uniquement sur les serveurs (règle valable pour Unicaen)
#HTTP_PROXY=
#HTTPS_PROXY=
#NO_PROXY=

#---------------------------#
#            Mail           #
#---------------------------#
# Si MAIL_ENABLED=true et les paramètres de mail sont vides, alors un conteneur local sera cré pour héberger un mail catcher
MAIL_ENABLED=true
#MAIL_MAILDEV_PORT=1080
#MAIL_SMTP_HOST=
#MAIL_SMTP_PORT=25
#MAIL_FROM="ne-pas-repondre@xxx.fr"
 No newline at end of file
+4 −2
Changes for .gitignore: 4 added lines, 2 removed lines.
Original line number Diff line number Diff line
.env
config.local.php
config/autoload/*.local.php
vendor/*
@@ -12,6 +13,7 @@ VERSION
composer.phar
.phpunit.result.cache
.idea
.env
/.php-cs-fixer.cache
deployments/*
Makefile
supervisord.*
docker-compose.yaml
 No newline at end of file

Dockerfile

deleted100644 → 0
+0 −50
Changes for Dockerfile: 0 added lines, 50 removed lines.
Original line number Diff line number Diff line
###########################################################################################
#
#                               Image pour le dev.
#
#         Montage des sources attendu dans le volume "/app" du container.
#
###########################################################################################

ARG PHP_VERSION

FROM unicaen-dev-php${PHP_VERSION}-apache

ARG APPLICATION_ENV

LABEL maintainer="Laurent LÉCLUSE <laurent.lecluse at unicaen.fr>"

ENV APACHE_CONF_DIR=/etc/apache2 \
    PHP_CONF_DIR=/etc/php/${PHP_VERSION}

## Installation de packages requis.
RUN apt-get update -y
RUN apt-get upgrade -y
RUN apt-get install -y unoconv gawk

# Nettoyage
RUN apt-get autoremove -y && apt-get clean && rm -rf /tmp/* /var/tmp/*

# Symlink apache access and error logs to stdout/stderr so Docker logs shows them
RUN ln -sf /dev/stdout /var/log/apache2/access.log
RUN ln -sf /dev/stdout /var/log/apache2/other_vhosts_access.log
RUN ln -sf /dev/stderr /var/log/apache2/error.log

# Lien pour l'exécutable interne de OSE
RUN ln -sf /app/bin/ose /usr/local/bin/ose
RUN ln -sf /app/bin/ose-test /usr/local/bin/ose-test
RUN ln -sf /app/bin/ose-code /usr/local/bin/ose-code

# Config PHP.
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/fpm/conf.d/app.ini
ADD docker/${APPLICATION_ENV}/php.conf ${PHP_CONF_DIR}/cli/conf.d/app.ini

# Configuration Apache et FPM
ADD docker/${APPLICATION_ENV}/apache-ports.conf    ${APACHE_CONF_DIR}/ports.conf
ADD docker/${APPLICATION_ENV}/apache-site.conf     ${APACHE_CONF_DIR}/sites-available/app.conf
ADD docker/${APPLICATION_ENV}/fpm/pool.d/app.conf  ${PHP_CONF_DIR}/fpm/pool.d/app.conf

COPY /docker/${APPLICATION_ENV}/entrypoint.d /entrypoint.d/

RUN a2ensite app && \
    service php${PHP_VERSION}-fpm reload
 No newline at end of file

Makefile

0 → 100644
+113 −0
Changes for Makefile: 113 added lines, 0 removed lines.
Original line number Diff line number Diff line
# On s'appuie sur le .env
include .env


# Commandes
help:
	@echo "Commandes disponibles:"
	@echo ""
	@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
	@echo ""
	@echo "Utilisez 'make <commande>' avec une des commandes ci-dessus."
.PHONY: help



install: ## Build des conteneurs de l'application
	docker compose up -d
.PHONY: install



uninstall: ## Désinstallation
	docker compose down --rmi all --volumes --remove-orphans
	docker network rm $(APP_NAME)-network -f
.PHONY: uninstall



start: ## Démarre les conteneurs de l'application
	docker compose start
.PHONY: start



stop: ## Stoppe les conteneurs de l'application
	docker compose stop
.PHONY: stop



bash: ## Entrer dans le bash du container php
	docker exec -it $(APP_NAME)-php /bin/bash
.PHONY: bash



bash-apache: ## Entrer dans le container Apache
	docker exec -it $(APP_NAME)-apache /bin/sh
.PHONY: bash-apache



bash-node: ## Entrer dans le container Node.js
	docker exec -it $(APP_NAME)-nodejs /bin/sh
.PHONY: bash-node



logs: ## Afficher les logs des containers docker
	docker compose logs -f --tail=100
.PHONY: logs



update-bdd: ## Mise à jour de la base de données
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose-code test6 update-bdd
.PHONY: update-bdd



update-ddl: ## Mise à jour des définitions de la base de données
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose update-ddl
	docker exec -it $(APP_NAME)-php chown -R $(DEV_HOST_USER_ID):$(DEV_HOST_USER_ID) *
.PHONY: update-bdd



clear-cache: ## Vide le cache de l'application
	docker exec -it $(APP_NAME)-php /var/www/html/bin/ose clear-cache
.PHONY: clear-cache



rebuild: ## Reconstruit tous les conteneurs
	docker compose down -v
	docker compose build --no-cache
	docker compose up -d
.PHONY: rebuild



clean: ## Vide les caches Docker
	@echo "==========================================================="
	@echo "  /!\ ATTENTION: DESTRUCTIVE Docker cleanup operation /!\  "
	@echo "==========================================================="
	@echo "Cette opération va supprimer tous les objets suivants de votre instance Docker:"
	@echo "  - Tous les containers non utilisés"
	@echo "  - Tous les réseaux non utilisés"
	@echo "  - Toutes les images dockers non utilisées"
	@echo "  - Tous les volumes non utilisés"
	@echo "  - Tous les caches seront vidés"
	@echo ""
	@echo "CETTE ACTION NE POURRA PAS ÊTRE ANNULÉE!"
	@echo ""
	@read -p "Confirmez-vous ce nettoyage complet ? [o/N] " confirm; \
	if [ "$$confirm" = "o" ] || [ "$$confirm" = "O" ]; then \
		docker compose down -v; \
		docker system prune -af --volumes; \
		echo "Ménage fait"; \
	else \
		echo "Ménage annulé"; \
	fi
.PHONY: clean
 No newline at end of file
+9 −0
Changes for doc/dev-infra/Caddyfile: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
ose-dev.localhost.unicaen.fr {
    tls /certs/localhost.unicaen.fr.crt /certs/localhost.unicaen.fr.key
    reverse_proxy ose-dev-apache:80
}

ose-dev.localhost.unicaen.fr:5133 {
    tls /certs/localhost.unicaen.fr.crt /certs/localhost.unicaen.fr.key
    reverse_proxy ose-dev-nodejs:5133
}
 No newline at end of file
Loading