1 votes

Docker obtient une liste des variables d'environnement possibles

Bonjour ! Après des recherches intensives, j'ai décidé de soumettre cette question à la communauté. J'ai commencé à apprendre docker & docker-compose il n'y a pas longtemps.

Ma question est la suivante :
Comment puis-je obtenir une liste des variables d'environnement possibles dans la console. Elles sont listées sur le docker hub mais comment puis-je les obtenir à partir de l'image elle-même ? Par exemple, l'image nextcloud a répertorié ces variables d'environnement sur le site web :

PostgreSQL:

POSTGRES_DB Name of the database using postgres.
POSTGRES_USER Username for the database using postgres.
POSTGRES_PASSWORD Password for the database user using postgres.
POSTGRES_HOST Hostname of the database server using postgres.
If you set any values, they will not be asked in the install page on first run. With a complete configuration by using all variables for your database type, you can additionally configure your Nextcloud instance by setting admin user and password (only works if you set both):

NEXTCLOUD_ADMIN_USER Name of the Nextcloud admin user.

  NEXTCLOUD_ADMIN_PASSWORD Password for the Nextcloud admin user.
    If you want, you can set the data directory, otherwise.......
.................................................................

Mais quand je le fais

docker inspect nextcloud |  jq '.[] | .Config.Env'

Je ne reçois que ça :

[
  "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  "PHPIZE_DEPS=autoconf \t\tdpkg-dev \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c",
  "PHP_INI_DIR=/usr/local/etc/php",
  "APACHE_CONFDIR=/etc/apache2",
  "APACHE_ENVVARS=/etc/apache2/envvars",
  "PHP_EXTRA_BUILD_DEPS=apache2-dev",
  "PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2 --disable-cgi",
  "PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",
  "PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64",
  "PHP_LDFLAGS=-Wl,-O1 -pie",
  "GPG_KEYS=42670A7FE4D0441C8E4632349E4FDC074A4EF02D 5A52880781F755608BF815FC910DEB46F53EA312",
  "PHP_VERSION=7.4.22",
  "PHP_URL=https://www.php.net/distributions/php-7.4.22.tar.xz",
  "PHP_ASC_URL=https://www.php.net/distributions/php-7.4.22.tar.xz.asc",
  "PHP_SHA256=8e078cd7d2f49ac3fcff902490a5bb1addc885e7e3b0d8dd068f42c68297bde8",
  "PHP_MEMORY_LIMIT=512M",
  "PHP_UPLOAD_LIMIT=512M",
  "NEXTCLOUD_VERSION=22.0.0"
]

Ce qui est beaucoup moins important que ce qui est indiqué sur le hub. Comment puis-je également obtenir ces variables ?

3voto

BMitch Points 1588

Docker ne le saura pas. Par exemple, si j'ai fait un script qui dit :

#!/bin/sh

if [ -n "$SUPER_SECRET_VAR" ]; then
  echo "Super secret mode enabled"
else
  echo "Hello world"
fi

Et empaqueté dans un conteneur, il n'y a rien dans l'emballage de docker qui vous oblige à dire à docker à propos de $SUPER_SECRET_VAR et comme Docker peut empaqueter des applications écrites dans de nombreux langages, il n'existe pas de moyen universel d'analyser toutes les applications possibles pour extraire ces informations.

Il ne vous reste plus qu'à :

  1. Lire la documentation sur l'image/application.
  2. Lecture du scripts, en particulier le point d'entrée scripts.
  3. Lire le code.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X