2016-02-24 2 views
1

J'essaye de créer une compilation SBT capable de publier un conteneur Docker soit sur DockerHub, soit sur notre dépôt interne Docker. J'utilise sbt-native-packager 1.0.3 pour construire l'image Docker.Création d'une configuration qui remplace certains paramètres Docker tout en conservant le docker: comportement de publication

Voici un extrait de mon build.sbt:

dockerRepository in dockerInternal := Some("thomaso"), 
packageName in dockerInternal := "externalname", 

sbt docker:publish publie maintenant avec succès à Thomaso/ExternalName sur DockerHub.

Pour ajouter la possibilité de publier sur notre repo Docker interne j'ai ajouté une configuration appelée dockerInternal:

val dockerInternal = config("dockerInternal") extend Docker 

J'ai ensuite ajouté ces deux paramètres pour remplacer les paramètres par défaut:

dockerRepository in Docker := Some("docker.nrk.no/project"), 
packageName in Docker := "internalname", 

Je me attendais sbt dockerInternal:publish doit publier une image Docker sur docker.nrk.no/project/internalname. Au lieu de cela, je reçois ce message d'erreur:

delivering ivy file to /home/n06944/repos/nrk.recommendations/api/target/scala-2.10/ivy-0.1- SNAPSHOT.xml 
java.lang.RuntimeException: Repository for publishing is not specified. 

Il me semble SBT a essayé de publier Ivy, pas Docker - quand je hardcode les valeurs à la prise en pension interne de l'édition fonctionne très bien et il n'y a aucune mention de Ivy dans les journaux. La configuration de Docker modifie la tâche de publication, et j'espérais qu'en laissant dockerInternal étendre Docker, j'hériterais le comportement de publication spécifique à Docker. Est-ce une hypothèse incorrecte? Ai-je manqué quelques incantations, ou y a-t-il une autre approche qui serait meilleure?

Répondre

0

Vous avez oublié d'importer toutes les tâches nécessaires dans votre nouvelle configuration. sbt-native-packager recommande de générer des sous-modules pour différentes configurations d'emballage.

Si vous voulez bidouiller avec des oscilloscopes de configuration (ce qui devient très désordonné très rapidement) here is another SO answer I gave.

acclamations, Muki