whirlwind
TDD infected, paranoid
Имеется дженкинс под докером. Например такой кампауз
Требуется натравить задачу, запускаемую из jenkins-docker, на selenium-hub. Сейчас работает через задницу. Имена этой сетки в дочернем докере естесно не резолвятся. Но можно прописать IP хаба в Jenkinsfile вручную, предварительно посмотрев network после запуска. Или можно извратиться с sh getent. Или с EnvInject. В теории можно сюда же поднять dns и натравить на него jenkins-docker через agent args в Jenkinsfile. Но я подозреваю, что есть более правильный способ. Ну как бы естественным кажется типовой кейс: есть отдельно поднятый селениум грид с кучей нодов и вообще отдельно администрируемый, и отдельные jenkins таски для юзания кластера грида. Как по-нормальному подружить все это дело?
Код:
version: "3"
services:
selenium-hub:
image: selenium/hub:3.141.59-zinc
container_name: selenium-hub
ports:
- "4444:4444"
chrome:
image: selenium/node-chrome:3.141.59-zinc
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
firefox:
image: selenium/node-firefox:3.141.59-zinc
volumes:
- /dev/shm:/dev/shm
depends_on:
- selenium-hub
environment:
- HUB_HOST=selenium-hub
- HUB_PORT=4444
jenkins-docker:
image: docker:dind
container_name: docker
privileged: true
environment:
- DOCKER_TLS_CERTDIR=/certs
volumes:
- jenkins-docker-certs:/certs/client
- jenkins-data:/var/jenkins_home
jenkins:
image: jenkinsci/blueocean
privileged: true
environment:
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
- DOCKER_TLS_VERIFY=1
- TZ=Europe/Moscow
- JAVA_OPTS=-Xmx1024m -Xms256m -XX:MaxPermSize=256m
volumes:
- jenkins-docker-certs:/certs/client:ro
- jenkins-data:/var/jenkins_home
ports:
- "8080:8080"
- "50000:50000"
user: "0"
networks:
default:
external:
name: jenkins
volumes:
jenkins-docker-certs:
external: true
jenkins-data:
external: true