Template PHP/MySQL/VSCode/Adminer

Environnement complet de développement web avec PHP, MySQL, Visual Studio Code Web et Adminer

Responsable : M. Rousseau mickael.rousseau@univ-tours.fr

Description du template

Ce template configure un environnement complet pour le développement et l'exécution d'applications web basées sur PHP, MySQL, et autres outils pratiques. Il contient plusieurs services collaborant entre eux dans un réseau privé Docker.

Services inclus

Apache PHP

Serveur web Apache avec PHP 8.1 et extension PDO MySQL

MySQL

Serveur MySQL 8.0 avec configuration des variables d'environnement

Visual Studio Code Web

Éditeur de code basé sur le web, accessible via navigateur

Adminer

Outil web simple pour gérer la base de données MySQL

Informations du template
  • PHP : Version 8.1
  • MySQL : Version 8.0
  • VSCode : Version Web
  • Adminer : Dernière version
  • Type : DSI Université
DSI Université Développement Complet

Détails des services

Apache PHP
  • Fournit un serveur web Apache avec PHP 8.1
  • Capable d'exécuter des scripts PHP
  • Se connecte à la base de données MySQL
  • Utilise une image personnalisée avec extension PDO MySQL
MySQL
  • Serveur MySQL 8.0 pour stocker les données
  • Configuration des variables d'environnement
  • Mot de passe root configurable
  • Base de données et utilisateur personnalisables
Visual Studio Code Web
  • Éditeur de code Visual Studio Code basé sur le web
  • Accessible via un navigateur
  • Montre le même volume que le service PHP Apache
  • Édition directe des fichiers de projet
  • Protégé par un mot de passe configurable
Adminer
  • Outil web simple pour gérer MySQL
  • Alternative à phpMyAdmin
  • Interface intuitive et légère
  • Gestion complète de la base de données

Avantages de cette configuration

  • Simplifie le déploiement d'un environnement de développement PHP/MySQL complet
  • Fournit un accès sécurisé à un éditeur web et un outil de gestion de base de données
  • Permet de travailler avec des données persistantes et un code modifiable en temps réel
  • Réseau privé dédié garantissant la communication entre services tout en restant isolé
Avec ce template, un développeur dispose d'une solution prête à l'emploi pour développer et tester une application web.

Docker Compose du Template

Configuration Docker Compose
version: '3.8'

services:

  php-apache-nom:
    image: 10.195.44.16:5000/dsi-php-8.1-apache-pdomysql:latest
    container_name: php-apache-mysql-{{ USERNAME }}
    ports:
      - "0:80" # Expose le port 80 sur un port aléatoire du host
    volumes:
      - volume-php-apache-{{ USERNAME }}:/var/www/html
    networks:
      - network-php-apache-mysql-{{ USERNAME }}

  mysql-nom:
    image: mysql:8.0
    container_name: mysql-{{ USERNAME }}
    environment:
      MYSQL_ROOT_PASSWORD: {{ MYSQLROOTPASSWORD }}
      MYSQL_DATABASE: mabase-{{ USERNAME }}
      MYSQL_USER: {{ USERNAME }}
      MYSQL_PASSWORD: {{ MYSQLUSERPASSWORD }}
    #ports:
    #  - "0:3306" # Expose le port 3306 sur un port aléatoire du host
    volumes:
      - volume-mysql-{{ USERNAME }}:/var/lib/mysql
    networks:
      - network-php-apache-mysql-{{ USERNAME }}

  vscode-web:
    image: codercom/code-server:latest
    container_name: vscode-{{ USERNAME }}
    environment:
      PASSWORD: {{ VSCODEPASSWORD }} # Mot de passe pour sécuriser l'accès à VS Code Web
    ports:
      - "0:8080" # Expose le port 3306 sur un port aléatoire du host
    volumes:
      - volume-php-apache-{{ USERNAME }}:/home/coder/project # Montre les fichiers dans le conteneur PHP Apache
    networks:
      - network-php-apache-mysql-{{ USERNAME }}

  adminer:
    container_name: adminer-{{ USERNAME }}
    image: adminer
    restart: always
    environment:
      - ADMINER_DEFAULT_SERVER=mysql-{{ USERNAME }}
    ports:
      - 0:8080 # Expose le port 8080 sur un port aléatoire du host
    networks:
      - network-php-apache-mysql-{{ USERNAME }}
    dns:
      - 127.0.0.11 # DNS interne de Docker

volumes:
  volume-php-apache-{{ USERNAME }}:
  volume-mysql-{{ USERNAME }}:

networks:
  network-php-apache-mysql-{{ USERNAME }}:

Prêt à développer ?

Déployez votre environnement de développement complet en quelques clics

Accéder à Portainer Retour aux templates