Pour tout problème contactez-nous par mail : support@froggit.fr | La FAQ :grey_question: | Rejoignez-nous sur le Chat :speech_balloon:

Skip to content
Snippets Groups Projects

Draft: Resolve "feat: integrate containers into YunoHost"

Open Arthur BOUDREAULT requested to merge 69-feat-integrate-containers-into-yunohost into main
7 unresolved threads
2 files
+ 95
0
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -70,6 +70,53 @@ Cette tâche utilisant le module template, vous pouvez tout à fait utiliser vos
Pour `owner` et `group`, par défaut le fichier va prendre comme utilisateur propriétaire le nom de l'application et comme groupe propriétaire www-data (groupe NGINX). Vous pouvez les changer en précisant des valeurs différentes.
### Gestion des conteneurs Docker
Par défaut, les applications de YunoHost sont prépackagées par les membres de la communauté. Nous avons décidé d'aller plus loin, en ajoutant simplement la possibilité de déployer des conteneurs Docker à l'aide de Docker Compose et de les intégrer au panel d'applications YunoHost. Nous utilisons pour cela [l'application YunoHost redirect](https://github.com/YunoHost-Apps/redirect_ynh/).
### 1ere étape : Installation et lancement des conteneurs Docker
```yml
enable_ynh_docker: true
geerlingguy_docker_version: 5.2.1
docker_compose_src_template: templates/compose.yml.j2
docker_compose_dest_template: /tmp/compose.yml
docker_compose_version: 3.9
docker_compose_apps:
    • I propose that containers apps be defined as other apps. I think it's possible to filter apps on is_container

      - label: Ara
          link: ara
          args:
            domain: ara.domain.tld
            path: /
            admin: user1
            is_public: yes
            is_container: yes
          post_install:
            - src: "templates/configure_app.sh.j2"
              dest: "/tmp/configure_app.sh"
              type: "script"
              owner: root
              group: root
          container:
            image: "recordsansible/ara-api:latest"
            ports:
              - "8000:8000"
            volumes:
              - "/home/{{ ynh_admin }}/.ara/server:/opt/ara"
      - label: Ara-template
          link: ara-template
          args:
            domain: ara-template.domain.tld
            path: /
            admin: user1
            is_public: yes
            is_container: yes
          post_install:
            - src: "templates/configure_app.sh.j2"
              dest: "/tmp/configure_app.sh"
              type: "script"
              owner: root
              group: root
         container_template: templates/ara-template_compose.yml.j2
         container_port: 8000
      Edited by Christophe Chaudier
Please register or sign in to reply
- name: app1
image: "recordsansible/ara-api:latest"
ports:
- "8000:8000"
volumes:
- "/home/{{ ynh_admin }}/.ara/server:/opt/ara"
environment: null
```
- `enable_ynh_docker` : Active / désactive la fonctionnalité d'installation et de lancement des services Docker Compose.
    • EN I think that this variable is useless because it is worth :

      • false when docker_compose_apps is empty
      • true when docker_compose_apps contains applications

      FR

      Je pense que cette variable est inutile car elle vaut :

      • faux quand docker_compose_apps est vide
      • vrais quand docker_compose_apps contient des applications
Please register or sign in to reply
- `geerlingguy_docker_version`: Vous permet de spécifier la version du rôle Ansible Docker que vous souhaitez utiliser. La version par défaut du rôle est 5.2.1, mais vous pouvez vérifier les versions du rôle [ici](https://github.com/geerlingguy/ansible-role-docker/tags).
- `docker_compose_src_template`: Chemin où se trouve le fichier de template Docker Compose à utiliser. Par défaut, nous fournissons un fichier de template mais vous pouvez aussi fournir votre fichier Docker Compose personnalisé.
- `docker_compose_dest_template` : Chemin où va être le fichier Docker Compose sur la machine distante.
Please register or sign in to reply
- `docker_compose_version` : Version de Docker Compose utilisée pour le fichier. Valeur par défaut: `3.9`.
- `docker_compose_apps` : Dictionnaires d'un ou plusieurs services Docker Compose. Dans chaque dictionnaire vous pourrez définir : name (obligatoire), image (obligatoire), ports (optionnel), volumes (optionnel) et environment (optionnel, variables d'environnement). Si vous ne définissez pas un des clés optionnelles, il vous faudra ne pas remplir de valeur ou la mettre à "null". Supprimer une clé du dictionnaire fera faire une erreur à Ansible.
    • Si vous ne définissez pas un des clés optionnelles, il vous faudra ne pas remplir de valeur ou la mettre à "null". Supprimer une clé du dictionnaire fera faire une erreur à Ansible.

      It would be nice to find a solution so that the user does not have to set these variables to null.

Please register or sign in to reply
### 2eme étape : Installation des applications Yunohost redirect
Si vous voulez intégrer des applications conteneurisées à l'interface utilisateur YunoHost ou facilement gérer une redirection à l'aide de Nginx, il existe [l'application YunoHost redirect](https://github.com/YunoHost-Apps/redirect_ynh/).
```yml
ynh_apps:
- label: "Redirection de l'application ara"
link: "redirect"
args:
domain: "ara.exemple.com"
path: "/"
redirect_path: "http://0.0.0.0:8000"
redirect_type: "public_proxy"
```
Dans l'exemple ci-dessus. On va rediriger l'application disponible sur le port 8000 de la machine pour qu'il soit exposé sur internet depuis l'url "ara.exemple.com".
Please register or sign in to reply
- `redirect_type` : Il existe 4 types de redirections gérées par Nginx. [Pour en savoir plus](https://github.com/YunoHost-Apps/redirect_ynh/blob/62718ad5c42705c92752908f3e062d086b87a251/manifest.json#L57).
## Dépendances
Aucune.
Loading