Implement fully automated Jenkins HW8 setup with Ansible, JCasC and JJB
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
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:
|
||||
Reference in New Issue
Block a user