services: registry: image: registry:2.8.3 restart: unless-stopped environment: REGISTRY_HTTP_ADDR: 0.0.0.0:5000 ports: - "5005:5000" volumes: - registry_data:/var/lib/registry networks: - jenkins_net jenkins: build: context: ./jenkins image: local-jenkins:latest restart: unless-stopped user: root environment: CASC_JENKINS_CONFIG: /var/jenkins_home/casc_configs/jenkins.yaml JAVA_OPTS: >- -Djenkins.install.runSetupWizard=false -Dhudson.model.DownloadService.noSignatureCheck=true JENKINS_ADMIN_ID: ${JENKINS_ADMIN_ID} JENKINS_ADMIN_PASSWORD: ${JENKINS_ADMIN_PASSWORD} JENKINS_URL_PUBLIC: ${JENKINS_URL_PUBLIC} MOBILE_DB_PASSWORD: ${MOBILE_DB_PASSWORD:-} ports: - "8081:8080" - "50000:50000" volumes: - jenkins_home:/var/jenkins_home - ./jenkins/casc:/var/jenkins_home/casc_configs:ro - /var/run/docker.sock:/var/run/docker.sock - ../..:/workspace/otus-autotests:ro healthcheck: test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:8080/login >/dev/null"] interval: 10s timeout: 5s retries: 30 networks: - jenkins_net nginx: image: nginx:1.28.0 restart: unless-stopped depends_on: jenkins: condition: service_healthy ports: - "${NGINX_PORT:-8088}:80" volumes: - ./nginx/default.conf:/etc/nginx/conf.d/default.conf:ro networks: - jenkins_net jobs_uploader: build: context: ./jobs_uploader image: local-jobs-uploader:latest restart: "no" depends_on: jenkins: condition: service_healthy environment: JENKINS_HOSTNAME: http://jenkins:8080 JENKINS_USERNAME: ${JENKINS_ADMIN_ID} JENKINS_PASSWORD: ${JENKINS_ADMIN_PASSWORD} JJB_PATH: /workspace/otus-autotests/hw8/config/jobs volumes: - ../..:/workspace/otus-autotests:ro networks: - jenkins_net agent-maven: image: localhost:5005/otus/slave-maven:1.0.0 restart: unless-stopped depends_on: jenkins: condition: service_healthy environment: JENKINS_URL: http://jenkins:8080 JENKINS_USER: ${JENKINS_ADMIN_ID} JENKINS_PASSWORD: ${JENKINS_ADMIN_PASSWORD} JENKINS_AGENT_NAME: maven-agent JENKINS_AGENT_WORKDIR: /home/jenkins/agent JENKINS_WEB_SOCKET: "true" JENKINS_LABELS: maven docker volumes: - /var/run/docker.sock:/var/run/docker.sock - ../..:/workspace/otus-autotests:ro networks: - jenkins_net agent-jjb: image: localhost:5005/otus/slave-jjb:1.0.0 restart: unless-stopped depends_on: jenkins: condition: service_healthy environment: JENKINS_URL: http://jenkins:8080 JENKINS_USER: ${JENKINS_ADMIN_ID} JENKINS_PASSWORD: ${JENKINS_ADMIN_PASSWORD} JENKINS_AGENT_NAME: jjb-agent JENKINS_AGENT_WORKDIR: /home/jenkins/agent JENKINS_WEB_SOCKET: "true" JENKINS_LABELS: jjb docker volumes: - /var/run/docker.sock:/var/run/docker.sock - ../..:/workspace/otus-autotests:ro networks: - jenkins_net networks: jenkins_net: driver: bridge volumes: jenkins_home: registry_data: