Comment définir un contexte pour docker.construire en jenkinsfile

Je suis en train d'adapter un menu fixe à construire pour jenkins. Je suis à la suite de notre menu fixe-composition de fichier et je suis de la création d'un Jenkinsfile qui est de la création de chaque conteneur et de les relier ensemble. Le problème, je suis en cours d'exécution en est que le docker-composer les fichiers de déclarer un contexte qui n'est pas là où le Dockerfile. Comme je le comprends, jenkins va définir le contexte où le Dockerfile est, ce qui met les fichiers à copier dans un autre emplacement relatif selon que l'jenkinsfile ou menu fixe-composition de fichier.

La structure de dossier est:

workspace
    |-docker
        |-db
           |-Dockerfile
           |-entrypoint.sh

C'est la façon dont le Dockerfile déclare l'instruction de COPIE pour le fichier en question

COPY docker/db/entrypoint.sh /

C'est comment mon jenkinsfile génère le fichier. Qui, à ma connaissance, met le contexte de répertoire

docker.build("db", "${WORKSPACE}/docker/db")

le docker-composition de fichier déclare comme:

db:
build:
  context: .
  dockerfile: docker/db/Dockerfile

qui met en contexte à la racine du projet.

Est-il possible de dire à un jenkinsfile d'utiliser le même contexte que le docker-composition de fichier, de sorte que le Dockerfile de l'instruction de COPIE peut rester stable et valable pour les deux Jenkins et docker-composer? Si ce n'est pas possible, personne ne sait de toute solution alternative?

OriginalL'auteur Julian | 2016-07-29