J'essaie d'exécuter des conteneurs docker dans le pipeline Jenkins.Jenkins docker - exécution d'un conteneur, exécution de script shell etc
je suit dans mon Jenkinsfile:
stage('test') {
steps {
script {
parallel (
"gatling" : {
sh 'bash ./test-gatling.sh'
},
"python" : {
sh 'bash ./test-python.sh'
})
}
}
}
Dans le test-gatling.sh
j'ai ceci:
#!/bin/bash
docker cp RecordedSimulation.scala denvazh/gatling:/RecordedSimulation.scala
docker run -it -m denvazh/gatling /bin/bash
ls
./gatling.sh
La commande ls
est là juste pour le test, mais quand il est exécuté, il dresse la liste des fichiers et dossiers de mon référentiel github, plutôt que les fichiers à l'intérieur du conteneur denvazh/gatling
. Pourquoi donc? Je pensais que la commande docker run -it [...]
ouvrirait le conteneur afin que les commandes puissent être exécutées à l'intérieur?
================
Aussi, comment puis-je exécuter un conteneur et je viens de le faire fonctionner, sans exécuter des commandes à l'intérieur? (Dans le pipeline Jenkins ofc)
Je voudrais exécuter: docker run -d -p 8080:8080 -t [my_container]
et y accéder sur le port 8080. Comment faire cela ...?
Le problème est dans votre script bash. Seule la commande "/ bin/bash" est exécutée dans votre docker. Les lignes ci-dessous ne sont pas automatiquement exécutées dans la corbeille/bash que vous venez d'appeler. –
J'ai souvent plusieurs 'exécution de docker-composer ..... une commande ...' l'un après l'autre dans mon Jenkinsfile. –