Installer Docker sur la VM :
apt update
apt install docker.io docker-compose -y
mkdir ~/tp3
cd ~/tp3
Créer le fichier
nano dockerfile-mariadb
Code du fichier :
FROM mariadb:10.7.8
RUN apt-get update && DEBIAN_FRONTEND=noninteractive \\
apt-get install -y --no-install-recommends \\
nano \\
curl \\
coreutils \\
php-mysql \\
&& \\
docker-php-ext-install pdo_mysql pdo -y \\
apt-get autoremove -y && apt-get clean -u
CMD ["mysqld", "--character-set-server=utf8", "--collation-server=utf8_bin"]
Créer le fichier
nano dockerfile-php
Le code :
FROM mariadb:7.4.33-bullseye
RUN apt-get update && DEBIAN_FRONTEND=noninteractive \\
apt-get install -y --no-install-recommends \\
nano \\
curl \\
coreutils \\
php-mysql \\
&& \\
apt-get autoremove -y && apt-get clean -u
CMD ["mysqld", "--character-set-server=utf8", "--collation-server=utf8_bin"]
Créer le fichier
nano init.sql
Le code :
CREATE DATABASE db_test;
USE db_test;
GRANT ALL PRIVILEGES ON db_test.* TO 'test_admin'@'%' IDENTIFIED BY 'db_admin';
CREATE TABLE t_villes (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom_ville VARCHAR(50),
code_postal INT
);
CREATE TABLE t_entreprises (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(50)
);
CREATE TABLE t_utilisateurs (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
nom VARCHAR(40),
prenom VARCHAR(40),
indice_ville INT UNSIGNED,
FOREIGN KEY (indice_ville) REFERENCES t_villes(id) ON UPDATE CASCADE ON DELETE SET NULL
);
CREATE TABLE t_lien_villes_entreprises (
id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
num_ville INT UNSIGNED,
num_entreprise INT UNSIGNED,
FOREIGN KEY (num_ville) REFERENCES t_villes(id),
FOREIGN KEY (num_entreprise) REFERENCES t_entreprises(id)
);
INSERT INTO t_villes (nom_ville, code_postal) VALUES ('Bordeaux','33000');
INSERT INTO t_villes (nom_ville, code_postal) VALUES ('Lyon','69000');
INSERT INTO t_villes (nom_ville, code_postal) VALUES ('Agen','47000');
INSERT INTO t_entreprises (nom) VALUES ('SA Libre');
INSERT INTO t_entreprises (nom) VALUES ('OpenSource SA');
INSERT INTO t_utilisateurs (nom, prenom, indice_ville) VALUES ('Dupond','Didier',3);
INSERT INTO t_utilisateurs (nom, prenom, indice_ville) VALUES ('Smith','John',1);
INSERT INTO t_utilisateurs (nom, prenom, indice_ville) VALUES ('Doudou','Max',1);
INSERT INTO t_utilisateurs (nom, prenom, indice_ville) VALUES ('Durand','Toto',2);
INSERT INTO t_utilisateurs (nom, prenom, indice_ville) VALUES ('Smith','Angela',1);
INSERT INTO t_lien_villes_entreprises (num_ville, num_entreprise) VALUES (1,1);
INSERT INTO t_lien_villes_entreprises (num_ville, num_entreprise) VALUES (1,2);
INSERT INTO t_lien_villes_entreprises (num_ville, num_entreprise) VALUES (2,2);