Matériel: Vieil ordinateur Version de YunoHost: 11.2.2
**J’ai accès à mon serveur : En direct avec un clavier/écran
Je veux récuperer les argument du mon manifest.json pour pouvoir le passer à mon docker-compose.yml mais je n'arrive pas à le faire.
Fichier run.sh dans le dossier scripts->docker
admin_username=$(ynh_read_manifest --manifest="manifest.json" --manifest_key="admin_username")
admin_password=$(ynh_read_manifest --manifest="manifest.json" --manifest_key="admin_password")
if [ -z "$admin_username" ] || [ -z "$admin_password" ]; then
echo "ERROR: admin_username and/or admin_password not configured. Aborting installation."
exit 1
fi
# Run docker-compose to start the services
ADMIN_USERNAME="$admin_username" ADMIN_PASSWORD="$admin_password" docker-compose -f docker/docker-compose.yml up --build -d
fichier manifest.json :
{
"name": "admin_username",
"type": "user",
"ask": {
"en": "Choose theadministrator username",
"fr": "Choisissez le nom d'utilisateur de l'administrateur"
},
"example": "admin"
},
{
"name": "admin_password",
"type": "password",
"ask": {
"en": "Choose the administrator password (It must contain at least 8 characters, including at least 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character (#@?!$%^&*-))",
"fr": "Choisissez le mot de passe de l'administrateur"
},
"example": "Password1564554"
}
docker-compose.yml dans le dossier scripts->docker
bw-ui:
environment:
- ADMIN_USERNAME=$ADMIN_USERNAME
- ADMIN_PASSWORD=$ADMIN_PASSWORD
Je suis en train de créer un app YunoHost pour pouvoir installer une image docker directement depuis YunoHost, le probleme c’est que ui de l’image à un id, mdp. Qu’on peut changer dans le fichier docker-compose.yml.
Je veux que lors de l’installation de l’application, l’utilisateur doive spécifier l’identifiant et le mot de passe, puis les récupérer directement dans le fichier docker-compose.yml :
environment:
Ensuite, la philosophie de YunoHost est de ne pas packager d’application Docker tel que tu le fais (YunoHost gérant Docker ou Docker Compose, lui-même gérant ses conteneurs). Il y a de multiples raison, mais pour faire de manière synthétique nous estimons que la conteneurisation applicative n’est pas compatible avec les serveurs les plus modestes en mémoire et puissance (bon, ça ne nous empêche pas de demander à des petites cartes ARM de compiler de grosses apps, mais ce n’est pas le lieu du débat ).
Ce que nous accepterions:
Une app qui télécharge et extrait les binaires d’un fichier image Docker (cf. le format docker des Sources : App resources | Yunohost Documentation) pour la faire tourner hors d’un conteneur
Une app de gestion des conteneurs (DockerUI, Portainer, …) avec un peu de magie pour les rendre intégrables au portail utilisateur.
Pour répondre à ta dernière question, consulte la doc sur l’utilisation de variables : Writing app scripts | Yunohost Documentation et son helper App helpers | Yunohost Documentation . En gros une question du manifeste nommée admin aura sa réponse stockée dans la variable $admin dans les scripts et le helper remplacera tout __ADMIN__ dans les fichiers qu’il traite par la-dite réponse.