Skip to content

Commit 0d4008c

Browse files
committed
2018-02-07 补充 Docker CI
1 parent 0aeb4f7 commit 0d4008c

File tree

4 files changed

+238
-114
lines changed

4 files changed

+238
-114
lines changed

CI-Install-And-Usage.md

Lines changed: 198 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -3,77 +3,232 @@
33
# CI 一整套服务
44

55
## 环境说明
6-
6+
77
- CentOS 7.3
8-
- 两台机子
8+
- 两台机子(一台机子也是可以,内存至少要 8G)
99
- 一台:Gitlab + Redis + Postgresql
10+
- 硬件推荐:内存 4G,CPU 2 核以上
1011
- 端口安排
1112
- Gitlab:10080
1213
- 一台:Nexus + Jenkins + SonarQube + Postgresql
14+
- 硬件推荐:内存 8G,CPU 2 核以上
1315
- 端口安排
14-
- Nexus:8081
15-
- SonarQube:9000
16+
- SonarQube:19000
17+
- Nexus:18081
1618
- Jenkins:18080
1719

1820
## Gitlab + Redis + Postgresql
1921

22+
- 预计会使用内存:2G 左右
2023
- 创建宿主机挂载目录:`mkdir -p /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql`
24+
- 赋权(避免挂载的时候,一些程序需要容器中的用户的特定权限使用):`chmod -R 777 /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql`
2125
- 这里使用 docker-compose 的启动方式,所以需要创建 docker-compose.yml 文件:
2226

23-
```yml
24-
gitlab:
25-
image: sameersbn/gitlab
26-
ports:
27-
- "10022:22"
28-
- "10080:80"
29-
links:
30-
- gitlab-redis:redisio
31-
- gitlab-postgresql:postgresql
32-
environment:
33-
- GITLAB_PORT=80
34-
- GITLAB_SSH_PORT=22
35-
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alpha-numeric-string
36-
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alpha-numeric-string
37-
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alpha-numeric-string
38-
volumes:
39-
- /data/docker/gitlab/gitlab:/home/git/data
40-
restart: always
41-
gitlab-redis:
42-
image: sameersbn/redis
43-
volumes:
44-
- /data/docker/gitlab/redis:/var/lib/redis
45-
restart: always
46-
gitlab-postgresql:
47-
image: sameersbn/postgresql:9.6
48-
environment:
49-
- DB_NAME=gitlabhq_production
27+
```yaml
28+
version: '2'
29+
30+
services:
31+
redis:
32+
restart: always
33+
image: sameersbn/redis:latest
34+
command:
35+
- --loglevel warning
36+
volumes:
37+
- /data/docker/gitlab/redis:/var/lib/redis:Z
38+
39+
postgresql:
40+
restart: always
41+
image: sameersbn/postgresql:9.6-2
42+
volumes:
43+
- /data/docker/gitlab/postgresql:/var/lib/postgresql:Z
44+
environment:
5045
- DB_USER=gitlab
5146
- DB_PASS=password
47+
- DB_NAME=gitlabhq_production
5248
- DB_EXTENSION=pg_trgm
53-
volumes:
54-
- /data/docker/gitlab/postgresql:/var/lib/postgresql
55-
restart: always
49+
50+
gitlab:
51+
restart: always
52+
image: sameersbn/gitlab:10.4.2-1
53+
depends_on:
54+
- redis
55+
- postgresql
56+
ports:
57+
- "10080:80"
58+
- "10022:22"
59+
volumes:
60+
- /data/docker/gitlab/gitlab:/home/git/data:Z
61+
environment:
62+
- DEBUG=false
63+
64+
- DB_ADAPTER=postgresql
65+
- DB_HOST=postgresql
66+
- DB_PORT=5432
67+
- DB_USER=gitlab
68+
- DB_PASS=password
69+
- DB_NAME=gitlabhq_production
70+
71+
- REDIS_HOST=redis
72+
- REDIS_PORT=6379
73+
74+
- TZ=Asia/Kolkata
75+
- GITLAB_TIMEZONE=Kolkata
76+
77+
- GITLAB_HTTPS=false
78+
- SSL_SELF_SIGNED=false
79+
80+
- GITLAB_HOST=localhost
81+
- GITLAB_PORT=10080
82+
- GITLAB_SSH_PORT=10022
83+
- GITLAB_RELATIVE_URL_ROOT=
84+
- GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
85+
- GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
86+
- GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string
87+
88+
- GITLAB_ROOT_PASSWORD=
89+
- GITLAB_ROOT_EMAIL=
90+
91+
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
92+
- GITLAB_NOTIFY_PUSHER=false
93+
94+
- GITLAB_EMAIL=notifications@example.com
95+
- GITLAB_EMAIL_REPLY_TO=noreply@example.com
96+
- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com
97+
98+
- GITLAB_BACKUP_SCHEDULE=daily
99+
- GITLAB_BACKUP_TIME=01:00
100+
101+
- SMTP_ENABLED=false
102+
- SMTP_DOMAIN=www.example.com
103+
- SMTP_HOST=smtp.gmail.com
104+
- SMTP_PORT=587
105+
- SMTP_USER=mailer@example.com
106+
- SMTP_PASS=password
107+
- SMTP_STARTTLS=true
108+
- SMTP_AUTHENTICATION=login
109+
110+
- IMAP_ENABLED=false
111+
- IMAP_HOST=imap.gmail.com
112+
- IMAP_PORT=993
113+
- IMAP_USER=mailer@example.com
114+
- IMAP_PASS=password
115+
- IMAP_SSL=true
116+
- IMAP_STARTTLS=false
117+
118+
- OAUTH_ENABLED=false
119+
- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
120+
- OAUTH_ALLOW_SSO=
121+
- OAUTH_BLOCK_AUTO_CREATED_USERS=true
122+
- OAUTH_AUTO_LINK_LDAP_USER=false
123+
- OAUTH_AUTO_LINK_SAML_USER=false
124+
- OAUTH_EXTERNAL_PROVIDERS=
125+
126+
- OAUTH_CAS3_LABEL=cas3
127+
- OAUTH_CAS3_SERVER=
128+
- OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
129+
- OAUTH_CAS3_LOGIN_URL=/cas/login
130+
- OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
131+
- OAUTH_CAS3_LOGOUT_URL=/cas/logout
132+
133+
- OAUTH_GOOGLE_API_KEY=
134+
- OAUTH_GOOGLE_APP_SECRET=
135+
- OAUTH_GOOGLE_RESTRICT_DOMAIN=
136+
137+
- OAUTH_FACEBOOK_API_KEY=
138+
- OAUTH_FACEBOOK_APP_SECRET=
139+
140+
- OAUTH_TWITTER_API_KEY=
141+
- OAUTH_TWITTER_APP_SECRET=
142+
143+
- OAUTH_GITHUB_API_KEY=
144+
- OAUTH_GITHUB_APP_SECRET=
145+
- OAUTH_GITHUB_URL=
146+
- OAUTH_GITHUB_VERIFY_SSL=
147+
148+
- OAUTH_GITLAB_API_KEY=
149+
- OAUTH_GITLAB_APP_SECRET=
150+
151+
- OAUTH_BITBUCKET_API_KEY=
152+
- OAUTH_BITBUCKET_APP_SECRET=
153+
154+
- OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
155+
- OAUTH_SAML_IDP_CERT_FINGERPRINT=
156+
- OAUTH_SAML_IDP_SSO_TARGET_URL=
157+
- OAUTH_SAML_ISSUER=
158+
- OAUTH_SAML_LABEL="Our SAML Provider"
159+
- OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
160+
- OAUTH_SAML_GROUPS_ATTRIBUTE=
161+
- OAUTH_SAML_EXTERNAL_GROUPS=
162+
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
163+
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
164+
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
165+
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=
166+
167+
- OAUTH_CROWD_SERVER_URL=
168+
- OAUTH_CROWD_APP_NAME=
169+
- OAUTH_CROWD_APP_PASSWORD=
170+
171+
- OAUTH_AUTH0_CLIENT_ID=
172+
- OAUTH_AUTH0_CLIENT_SECRET=
173+
- OAUTH_AUTH0_DOMAIN=
174+
175+
- OAUTH_AZURE_API_KEY=
176+
- OAUTH_AZURE_API_SECRET=
177+
- OAUTH_AZURE_TENANT_ID=
56178
```
57179
58-
- 启动:`docker-compose up -d`
59-
- 浏览器访问:<http://192.168.0.105:10080/users/sign_in>
60180
181+
- 启动:`docker-compose up -d`
182+
- 浏览器访问 Gitlab:<http://119.23.252.150:10080/users/sign_in>
61183

62184

63185
## Nexus + Jenkins + SonarQube
64186

65-
187+
- 预计会使用内存:4G 左右
66188
- 创建宿主机挂载目录:`mkdir -p /data/docker/ci/nexus /data/docker/ci/jenkins /data/docker/ci/sonarqube /data/docker/ci/postgresql`
189+
- 赋权(避免挂载的时候,一些程序需要容器中的用户的特定权限使用):`chmod -R 777 /data/docker/ci/nexus /data/docker/ci/jenkins /data/docker/ci/sonarqube /data/docker/ci/postgresql`
67190
- 这里使用 docker-compose 的启动方式,所以需要创建 docker-compose.yml 文件:
68191

69-
```
70-
version: '2'
192+
```yaml
193+
version: '3'
71194
72195
networks:
73196
prodnetwork:
74197
driver: bridge
75198
76199
services:
200+
sonardb:
201+
image: postgres:9.6.6
202+
restart: always
203+
ports:
204+
- "5433:5432"
205+
networks:
206+
- prodnetwork
207+
volumes:
208+
- /data/docker/ci/postgresql:/var/lib/postgresql
209+
environment:
210+
- POSTGRES_USER=sonar
211+
- POSTGRES_PASSWORD=sonar
212+
sonar:
213+
image: sonarqube:6.7.1
214+
restart: always
215+
ports:
216+
- "19000:9000"
217+
- "19092:9092"
218+
#networks:
219+
#- prodnetwork
220+
depends_on:
221+
- sonardb
222+
volumes:
223+
- /data/docker/ci/sonarqube/conf:/opt/sonarqube/conf
224+
- /data/docker/ci/sonarqube/data:/opt/sonarqube/data
225+
- /data/docker/ci/sonarqube/extension:/opt/sonarqube/extensions
226+
- /data/docker/ci/sonarqube/bundled-plugins:/opt/sonarqube/lib/bundled-plugins
227+
environment:
228+
#- SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5433/sonar
229+
- SONARQUBE_JDBC_URL=jdbc:postgresql://119.23.252.150:5433/sonar
230+
- SONARQUBE_JDBC_USERNAME=sonar
231+
- SONARQUBE_JDBC_PASSWORD=sonar
77232
nexus:
78233
image: sonatype/nexus3
79234
restart: always
@@ -84,7 +239,7 @@ services:
84239
volumes:
85240
- /data/docker/ci/nexus:/nexus-data
86241
jenkins:
87-
image: jenkins
242+
image: jenkins:2.60.3
88243
restart: always
89244
ports:
90245
- "18080:8080"
@@ -101,44 +256,11 @@ services:
101256
- NEXUS_PORT=8081
102257
- SONAR_PORT=9000
103258
- SONAR_DB_PORT=5432
104-
sonardb:
105-
networks:
106-
- prodnetwork
107-
restart: always
108-
image: postgres:9.6
109-
ports:
110-
- "5433:5432"
111-
volumes:
112-
- /data/docker/ci/postgresql:/var/lib/postgresql
113-
environment:
114-
- POSTGRES_USER=sonar
115-
- POSTGRES_PASSWORD=sonar
116-
sonar:
117-
image: sonarqube
118-
restart: always
119-
ports:
120-
- "19000:9000"
121-
- "19092:9092"
122-
networks:
123-
- prodnetwork
124-
depends_on:
125-
- sonardb
126-
volumes:
127-
- /data/docker/ci/sonarqube:/opt/sonarqube
128-
environment:
129-
- SONARQUBE_JDBC_URL=jdbc:postgresql://sonardb:5433/sonar
130-
- SONARQUBE_JDBC_USERNAME=sonar
131-
- SONARQUBE_JDBC_PASSWORD=sonar
132259
```
133260

134-
135-
136-
137-
138-
139-
140-
141-
261+
- 浏览器访问 SonarQube:<http://119.23.252.150:19000>
262+
- 浏览器访问 Nexus:<http://119.23.252.150:18081>
263+
- 浏览器访问 Jenkins:<http://119.23.252.150:18080>
142264

143265

144266

Gitlab-Install-And-Settings.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33

44
## Docker 安装方式
55

6+
- 命令:``
7+
8+
## Docker Compose 安装方式
9+
610

711
- 创建宿主机挂载目录:`mkdir -p /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql`
12+
- 赋权(避免挂载的时候,一些程序需要容器中的用户的特定权限使用):`chown -R 777 /data/docker/gitlab/gitlab /data/docker/gitlab/redis /data/docker/gitlab/postgresql`
813
- 这里使用 docker-compose 的启动方式,所以需要创建 docker-compose.yml 文件:
914

1015
```yml
1116
gitlab:
12-
image: sameersbn/gitlab
17+
image: sameersbn/gitlab:10.4.2-1
1318
ports:
1419
- "10022:22"
1520
- "10080:80"
@@ -31,7 +36,7 @@ gitlab-redis:
3136
- /data/docker/gitlab/redis:/var/lib/redis
3237
restart: always
3338
gitlab-postgresql:
34-
image: sameersbn/postgresql:9.5-3
39+
image: sameersbn/postgresql:9.6-2
3540
environment:
3641
- DB_NAME=gitlabhq_production
3742
- DB_USER=gitlab

0 commit comments

Comments
 (0)