Template PHP/MySQL/VSCode/phpMyAdmin

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

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 variables d'environnement configurables

Visual Studio Code Web

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

phpMyAdmin

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
  • phpMyAdmin : Dernière version
  • Port Web : 80/8080
  • 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 de PHP 8.1 avec l'extension PDO MySQL
MySQL

Fournit un serveur MySQL 8.0 pour stocker les données de l'application.

Configuration des variables d'environnement :
  • Mot de passe root
  • Nom de la base de données
  • Utilisateur et mot de passe associés
Visual Studio Code Web
  • Offre un é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 défini dans une variable d'environnement
phpMyAdmin
  • Fournit un outil web simple pour gérer la base de données MySQL
  • Interface graphique intuitive
  • Gestion complète des bases de données
  • Exécution de requêtes SQL

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 }}

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 0:80
    environment:
      PMA_HOST: mysql-{{ USERNAME }}
      # MYSQL_ROOT_PASSWORD: password
    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