### Construire l'image ```shell docker build -t iut/pgsql:2025-12 -f postgresql.Dockerfile . ``` ## Données ### Conventions de nommage Le nom des tables est au singulier et en minuscule ### Schéma table |colonnes --- |--- adherent | id, nom, prenom, genre, naissance, codepostal famille | code, famille, code_parent, arborescence (ltree), gauche, droite article | code, article, famille_code, factpoids, prix ticket | id, date_ticket, adherent_id, mode_rglt ligne | id, ticket_id, article_code, prix_unitaire, quantite ### Export ```shell psql -h 127.0.0.1 -d sql -U sql -c "\copy (select * from ligne order by id) to './ligne.csv' with csv header" psql -h 127.0.0.1 -d sql -U sql -c "\copy (select id, source, target, cost, reverse_cost, ST_AsText(geom) from route order by id) to './route.csv' with csv header" ``` ### Jeux de données - https://www.kaggle.com/datasets/alexandrelemercier/food-detailed-nutritional-content ## Proxy inverse Un proxy inverse (ou reverse proxy) est un service intermédiaire placé entre les utilisateurs et les applications web internes. Il reçoit les requêtes HTTP/HTTPS et les redirige automatiquement vers le bon service backend, souvent sur un autre port ou un autre conteneur. Il permet notamment : - d’avoir un seul point d’entrée pour plusieurs services ; - de simplifier les URLs (par exemple pgadmin.localhost au lieu de localhost:5050) ; - de gérer les certificats TLS/HTTPS automatiquement ; - d’assurer la découverte automatique et le load balancing entre conteneurs. Les solutions pour réaliser un reverse proxy sont généralement [Traefik](https://traefik.io/traefik), [Nginx Proxy Manager](https://nginxproxymanager.com/) et [Caddy](https://caddyserver.com/). **Caddy** se démarque par sa grande simplicité : il se configure presque entièrement à partir de labels Docker et gère automatiquement la création de certificat HTTPS, ce qui le rend idéal pour les environnements de développement ou les projets personnels. **Traefik**, de son côté, est plus complet et mieux adapté aux environnements de production complexes : il offre un tableau de bord intégré, une gestion fine du routage, et s’intègre parfaitement avec des orchestrateurs comme Docker Swarm ou Kubernetes. **Nginx Proxy Manager** propose une approche visuelle grâce à son interface web d’administration. Il est apprécié des utilisateurs qui préfèrent tout configurer par le navigateur, mais il reste moins automatisé que Caddy et moins flexible que Traefik pour les infrastructures dynamiques. ```yaml caddy: image: lucaslorentz/caddy-docker-proxy:2.10 restart: "no" ports: - "80:80" - "443:443/tcp" - "443:443/udp" - "2019:2019" networks: - caddy_net environment: CADDY_INGRESS_NETWORKS: ${COMPOSE_PROJECT_NAME}_caddy_net CADDY_ADMIN: "0.0.0.0:2019" volumes: - ./data:/usr/share/caddy - /var/run/docker.sock:/var/run/docker.sock:ro labels: caddy_admin: "on" ```c ### Administration pgAdmin est un outil d’administration et de gestion pour PostgreSQL. C’est l’équivalent d’un « phpMyAdmin » pour MySQL, mais conçu pour PostgreSQL. ### PostGraphile ```shell docker build -t iut/postgraphile:2025-12 -f postgraphile.Dockerfile . ``` ### Podman ```shell sudo ausearch -c "caddy" --raw | audit2allow -M my-caddy sudo semodule -i my-caddy.pp ```