J’ai récemment souhaité tester un module sur d’anciennes version de prestashop, mais celle-ci ne fonctionnaient pas correctement avec mysql 5.7 qui est installé par défaut sur mon serveur de développement ( basé sur ubuntu 16.04 )

Ce service devant tourner de manière ponctuelle, l’installer en doublon de la version 5.6 n’était pas une option.
La solution la plus simple est donc d’utiliser docker, nous allons voir comment avoir un autre serveur de base de données avec la version 5.6 en quelques minutes 🙂

Installation de docker

Pour cela je vous envoie vers la documentation officielle qui explique tout très bien : https://docs.docker.com/install/linux/docker-ce/ubuntu/#extra-steps-for-aufs

Installer docker-compose

sudo apt-get install docker-compose

Création du fichier docker-compose

Pour le ranger j’ai  créer un dossier /mysql56 dans mon dossier home

mkdir ~/mysql56

Dans lequel on va créer un dossier /data qui contiendra le contenu des bases de données du container.
Ceci permettra de persister les données en éteignant le container.

On va ensuite installer l’image mysql5.6 en créant un fichier docker-compose.yml dans le dossier avec le contenu suivant

version: '2'
services:
  mysql5.6:
    image: mysql:5.6
    restart: always
    volumes:
     - ./data:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: root
    ports:
        - "3309:3309"
    networks:
      network:
         ipv4_address: 172.20.0.2
networks:
    network:
        ipam:
            config:
                - subnet: 172.20.0.0/16

Celui-ci va lancer  une base de données mysql 5.6 en complément de la version 5.7 ,celle-ci sera accessible via l’ip 172.20.0.2 et le login / mot de passe : root / root

Pour lancer le container il suffit ensuite de lancer la commande :

sudo docker-compose up

Si vous souhaitez lancer la commande en background vous pouvez rajouter l’option “-d”

Vous pouvez ensuite consulter les containers en cours d’éxécution via la commande :

sudo docker-compose ps

Et les arrêter via la commande

sudo docker-compose stop