3.7. Artefacts externes
Il n’est pas recommandé de stocker des fichiers binaires dans un référentiel source. C’est pourquoi vous devez définir une version qui tire des fichiers supplémentaires, tels que les dépendances Java .jar, pendant le processus de construction. La façon dont cela est fait dépend de la stratégie de construction que vous utilisez.
Dans le cas d’une stratégie de création de source, vous devez mettre les commandes shell appropriées dans le script assembler:
fichier .s2i/bin/assembler
#!/bin/sh APP_VERSION=1.0 wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar
#!/bin/sh
APP_VERSION=1.0
wget http://repository.example.com/app/app-$APP_VERSION.jar -O app.jar
fichier .s2i/bin/run
#!/bin/sh exec java -jar app.jar
#!/bin/sh
exec java -jar app.jar
Dans le cas d’une stratégie de construction Docker, vous devez modifier le Dockerfile et invoquer les commandes shell avec l’instruction RUN:
Extrait de Dockerfile
Dans la pratique, vous voudrez peut-être utiliser une variable d’environnement pour l’emplacement du fichier afin que le fichier spécifique à télécharger puisse être personnalisé à l’aide d’une variable d’environnement définie sur le BuildConfig, plutôt que de mettre à jour le fichier Dockerfile ou assembler le script.
Il est possible de choisir entre différentes méthodes de définition des variables d’environnement:
- En utilisant le fichier .s2i/environnement (uniquement pour une stratégie de création de source)
- Définir les variables dans l’objet BuildConfig
- Fournir les variables explicitement à l’aide de la commande oc start-build --env (uniquement pour les builds qui sont déclenchés manuellement)