1-安装私有http服务与CICD组件

选择使用docker-compose安装

按照的环境包括

  • nginx
  • gitlab
  • gitlab-runner
  • jenkins

docker-compose配置文件如下

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
100
101
102
103
104
105
106
107
108
109
version: '3.0'

networks:
docker_net:
driver: bridge
ipam:
config:
- subnet: 172.0.0.0/24
services:
gitlab:
image: 'xiaochouyou/gitlab-ce-zh:11.1.4'
container_name: "gitlab_n"
restart: always
privileged: true
hostname: 'gitlab'
networks:
docker_net:
ipv4_address: 172.0.0.3
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://gitlab.testserv.cn:38080'
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['gitlab_shell_ssh_port'] = 38022
ports:
- '38080:38080'
- '38443:443'
- '38022:38022'
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /data/app/gitlib/config:/etc/gitlab
- /data/app/gitlib/data:/var/opt/gitlab
- /data/app/gitlib/logs:/var/log/gitlab

gitlab-runner:
networks:
docker_net:
ipv4_address: 172.0.0.4
image: xiaochouyou/gitlab-runner:15.11.0
restart: always
container_name: gitlab-runner_n
privileged: true
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /data/app/gitlab-runner/config:/etc/gitlab-runner
- /usr/bin/docker:/usr/bin/docker
- /var/run/docker.sock:/var/run/docker.sock
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
- /data/app/jdk:/home/gitlab-runner/jdk
- /data/app/maven3.6.2:/home/gitlab-runner/maven/maven3.6.2
- /data/app/.m2:/home/gitlab-runner/.m2
- /data/app/.nvm:/home/gitlab-runner/.nvm
- /data/html:/data/html
- /data/cluster/gitlib_jenkins/env_profiles:/home/gitlab-runner/env_profiles
- /data/cluster/gitlib_jenkins/.git-credentials:/home/gitlab-runner/.git-credentials
jenkins:
networks:
docker_net:
ipv4_address: 172.0.0.5
image: xiaochouyou/jenkins:lts
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /data/app/jenkins/data/jenkins/:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
- /usr/lib/x86_64-linux-gnu/libltdl.so.7:/usr/lib/x86_64-linux-gnu/libltdl.so.7
- /data/app/maven3.6.2:/var/jenkins_home/maven/maven3.6.2
- /data/app/.m2:/var/jenkins_home/.m2
- /data/app/.nvm:/var/jenkins_home/.nvm
- /data/app/Myblog:/var/jenkins_home/workspace/Myblog
ports:
- "28080:8080"
expose:
- "8080"
- "50000"
privileged: true
user: root
restart: always
container_name: jenkins_n
environment:
JAVA_OPTS: '-Xms256m -Xmx512m -XX:PermSize=256M -XX:MaxPermSize=512m -Djava.util.logging.config.file=/var/jenkins_home/log.properties'

nginx:
container_name: nginx_n
image: nginx:1.23.2-alpine
restart: always
networks:
docker_net:
ipv4_address: 172.0.0.7
deploy:
resources:
limits:
memory: 256m
ports:
- 8080:8080
environment:
#- TZ="Asiz/Shanghai"
- NGINX_PORT=8080
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
- /data/html:/data/html:ro
- /data/app/nginx/etc:/etc/nginx:rw
- /data/app/Myblog:/etc/data/Myblog:rw