188 lines
4.9 KiB
YAML
188 lines
4.9 KiB
YAML
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/projectwork:ro
|
|
- ../..:/workspace/otus: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
|
|
|
|
selenoid:
|
|
image: aerokube/selenoid:1.11.3
|
|
restart: unless-stopped
|
|
environment:
|
|
DOCKER_API_VERSION: "1.44"
|
|
OVERRIDE_VIDEO_OUTPUT_DIR: ${SELENOID_VIDEO_OUTPUT_DIR:-/opt/selenoid/video}
|
|
ports:
|
|
- "4444:4444"
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ./selenoid/browsers.json:/etc/selenoid/browsers.json:ro
|
|
- ./selenoid/video:/opt/selenoid/video
|
|
- ./selenoid/logs:/opt/selenoid/logs
|
|
command:
|
|
- "-conf"
|
|
- "/etc/selenoid/browsers.json"
|
|
- "-video-recorder-image"
|
|
- "selenoid/video-recorder:latest-release"
|
|
- "-container-network"
|
|
- "otus_jenkins_net"
|
|
- "-limit"
|
|
- "4"
|
|
- "-timeout"
|
|
- "5m"
|
|
- "-service-startup-timeout"
|
|
- "120s"
|
|
- "-session-attempt-timeout"
|
|
- "120s"
|
|
- "-video-output-dir"
|
|
- "/opt/selenoid/video"
|
|
- "-log-output-dir"
|
|
- "/opt/selenoid/logs"
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "wget -q -O - http://127.0.0.1:4444/status >/dev/null 2>&1"]
|
|
interval: 10s
|
|
timeout: 5s
|
|
retries: 30
|
|
networks:
|
|
- jenkins_net
|
|
|
|
selenoid-ui:
|
|
image: aerokube/selenoid-ui:1.10.11
|
|
restart: unless-stopped
|
|
depends_on:
|
|
selenoid:
|
|
condition: service_healthy
|
|
ports:
|
|
- "8089:8080"
|
|
command:
|
|
- "--selenoid-uri"
|
|
- "http://selenoid:4444"
|
|
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/projectwork/config/jobs
|
|
volumes:
|
|
- ..:/workspace/projectwork:ro
|
|
- ../..:/workspace/otus: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
|
|
OTUS_WORKSPACE_ROOT: /workspace/projectwork
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ..:/workspace/projectwork:ro
|
|
- ../..:/workspace/otus:ro
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
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
|
|
OTUS_WORKSPACE_ROOT: /workspace/projectwork
|
|
volumes:
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
- ..:/workspace/projectwork:ro
|
|
- ../..:/workspace/otus:ro
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
networks:
|
|
- jenkins_net
|
|
|
|
networks:
|
|
jenkins_net:
|
|
name: otus_jenkins_net
|
|
driver: bridge
|
|
|
|
volumes:
|
|
jenkins_home:
|
|
registry_data:
|