Récupérer les arguments du manifest

Mon serveur YunoHost

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

Bonjour,
J’ai ressenti beaucoup de confusion en lisant ton message.
Qu’essayes-tu de faire au juste ? Créer un package YunoHost ou autre chose ?

Si c’est le cas, je te conseille de lire la documentation et te référer au package d’exemple.

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:

  • ADMIN_USERNAME=$ADMIN_USERNAME
  • ADMIN_PASSWORD=$ADMIN_PASSWORD

Premièrement, je te conseille de suivre le nouveau format de packaging: Packaging v2 | Yunohost Documentation

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 :sweat_smile: ).

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.

2 Likes

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.