Podman - Variable Environnement

Certaines images permettent de transmettre des variables d’environnement (généralement elles ne sont pas définies dans les fichiers d’images).

Variables d’environnement pour les conteneurs

La commande podman run -d my.com.pany.org/rhel8/ mariadb-105 exécute une BDD en conteneur, mais ici le conteneur ne démarre pas :

$ podman run -d my.com.pany.org/rhel8/mariadb-105 --name db_01
3897204fb0e7c58a0f1751647cac584256d26c49c43585912361249856de225ae
$ podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3897204fb0e7 my.com.pany.org/rhel8/mariadb-105:latest run-mysqld 1 second Exited (1) db_01

La commande podman container logs recherche dans les logs :

$ podman container logs db_01
[...]
You must either specify the following environment variables:
MYSQL_USER (regex: '^[a-zA-Z0-9_]+$')
MYSQL_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
MYSQL_DATABASE (regex: '^[a-zA-Z0-9_]+$')
Or the following environment variable:
MYSQL_ROOT_PASSWORD (regex: '^[a-zA-Z0-9_~!@#$%^&*()-=<>,.?;:|]+$')
Or both.
[...]

Les variables d’environnement requises ne sont absentes :

$ skopeo inspect docker://my.com.pany.org/rhel8/mariadb-105
[...]
"name": "rhel8/mariadb-105",
"release": "40.1647451927",
"summary": "MariaDB 10.5 SQL database server",
"url": "https://access.redhat.com/containers/#/registry.access.redhat.com/rhel8/mariadb-105/images/1-40.1647451927",
"usage": "podman run -d -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db -p 3306:3306 rhel8/mariadb-105",
"vcs-ref": "da62d7a1176a079bd419e4ac04193b96e0edf7a6",
"vcs-type": "git",
"vendor": "Red Hat, Inc.",
[...]

Le conteneur utilise le port 3306 pour le service de BDD.

Documentation sur les variables d’environnement disponibles pour configurer le service de BDD :

Variable Description
MYSQL_USER Nom d’user pour le compte MySQL à créer
MYSQL_PASSWORD Mot de passe du compte d’user
MYSQL_DATABASE Nom de la BDD
MYSQL_ROOT_PASSWORD Mot de passe de l’user root (facultatif)

L’option -e de podman run permet de transmettre les variables d’environnement au conteneur :

$ podman run -d --name db_01 \
-e MYSQL_USER=luci \
-e MYSQL_PASSWORD=Luci3v1l \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=Aw3s0m3P4SS! \
my.com.pany.org/rhel8/mariadb-105

Vérification :

$ podman ps
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS NAMES
4b8f01be7fd6 my.com.pany.org/rhel8/mariadb-105:latest run-mysqld 6
seconds ago Up 6 seconds ago db_01

/!\ Résumé des commandes

Commandes :

$ podman run -d my.com.pany.org/rhel8/ mariadb-105
$ podman run -d my.com.pany.org/rhel8/mariadb-105 --name db_01
$ podman container logs db_01
$ podman ps

$ skopeo inspect docker://my.com.pany.org/rhel8/mariadb-105

$ podman run -d --name db_01 \
-e MYSQL_USER=luci \
-e MYSQL_PASSWORD=Luci3v1l \
-e MYSQL_DATABASE=dev_data \
-e MYSQL_ROOT_PASSWORD=Aw3s0m3P4SS! \
my.com.pany.org/rhel8/mariadb-105

Fichiers :


Documentation

MAN podman(1)
MAN podman-exec(1)
MAN podman-info(1)
MAN podman-network(1)
MAN podman-network-create(1)
MAN podman-network-inspect(1)
MAN podmannetwork-ls(1)
MAN podman-port(1)
MAN podman-run(1)
MAN podman-unshare(1)

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/building_running_and_managing_containers/assembly_working-withcontainers_building-running-and-managing-containers

> Partager <