forked from marcelbirkner/docker-ci-tool-stack
-
Notifications
You must be signed in to change notification settings - Fork 1
/
docker-compose.yml
99 lines (95 loc) · 2.55 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
version: '3'
networks:
prodnetwork:
driver: bridge
volumes:
nexus-data:
jenkins-data:
services:
traefik:
image: traefik:montdor
restart: always
command: --accesslog --api --api.insecure=true --log --providers.docker=true --providers.docker.exposedbydefault=false
ports:
- "80:80"
- "443:443"
- "8080:8080"
networks:
- prodnetwork
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
nexus:
# Nexus3 uses chef-solo. HTTP_PROXY env is not used.
# TODO: deal with Nexus3 and proxies.
build: ./nexus
restart: always
networks:
- prodnetwork
volumes:
- nexus-data:/nexus-data
labels:
- "traefik.enable=true"
- "traefik.http.routers.nexus.rule=Host(`localhost`) && PathPrefix(`/nexus/`)"
jenkins:
build: ./jenkins
restart: always
networks:
- prodnetwork
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- jenkins-data:/var/lib/jenkins/
depends_on:
- nexus
- sonar
environment:
- NEXUS_PORT=8081
- SONAR_PORT=9000
- SONAR_DB_PORT=5432
- JENKINS_OPTS=--prefix=/jenkins/
labels:
- "traefik.enable=true"
- "traefik.http.routers.jenkins.rule=Host(`localhost`) && PathPrefix(`/jenkins`)"
sonardb:
networks:
- prodnetwork
restart: always
image: postgres:9.6
environment:
- POSTGRES_USER=sonar
- POSTGRES_PASSWORD=sonar
sonar:
image: sonarqube
restart: always
networks:
- prodnetwork
depends_on:
- sonardb
environment:
- SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5432/sonar
- SONARQUBE_JDBC_USERNAME=sonar
- SONARQUBE_JDBC_PASSWORD=sonar
- sonar.web.context=/sonar
labels:
- "traefik.enable=true"
- "traefik.http.routers.sonar.rule=Host(`localhost`) && PathPrefix(`/sonar/`)"
##########################################################################################
# DISABLED: GitLab takes too much memory and CPU. Demo uses GitHub repositories instead.
#
# gitlab:
# image: gitlab/gitlab-ce:latest
# restart: always
# networks:
# - prodnetwork
# environment:
# GITLAB_OMNIBUS_CONFIG: |
# # external_url 'https://gitlab.example.com'
# # Add any other gitlab.rb configuration here, each on its own line
# ports:
# - "10080:80"
# - "10443:443"
# - "10022:22"
# volumes:
# - /opt/gitlab/config:/etc/gitlab
# - /opt/gitlab/logs:/var/log/gitlab
# - /opt/gitlab/data:/var/opt/gitlab