一. docker离线安装并注册为服务
二. docker-compose 安装
- 添加可以执行权限
chmod +x docker-compose-linux-x86_64
- 将文件放入可执行文件APTH目录
echo $PATH
mv docker-compose-linux-x86_64 /usr/bin/
- 重命名
mv docker-compose-linux-x86_64 docker-compose
- 安装完成
三. gitlab安装
- 查询镜像
dockers search gitlab/gitlab
2. 下载镜像
docker pull gitlab/gitlab-ce:latest
- 创建docker-compose.yml配置
version: '3.6'
services:
gitlab: #定义服务名称
image: 'gitlab/gitlab-ce:latest' #定义镜像
container_name: gitlab #定义container名称
restart: always #定义重启策略
privileged: true #以特权模式运行
hostname: 'gitlab'
environment:
TZ: 'Asia/Shanghai'
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://121.36.34.125:8888' #定义web地址
gitlab_rails['gitlab_shell_ssh_port'] = 8222 #定义ssh端口,通过ssh拉取仓库代码需要用到
ports:
- '8888:8888' #web端口需要和上面配置的一致
- '8443:443'
- '8222:22'
volumes:
- ./config:/etc/gitlab
- ./data:/var/opt/gitlab
- ./logs:/var/log/gitlab
- 运行容器
docker-compose up -d
5. 默认用户名 root 密码进入容器查看默认密码
docker exec -it gitlab bash
cat /etc/gitlab/initial_root_password
- 修改密码 每个版本不一样
#######内存优化
1. 编辑配置文件
cd /etc/gitlab
vi gitlab.rb
2. 配置文件中调整参数如下:
gitlab_rails['time_zone'] = 'Asia/Shanghai'
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
unicorn['worker_memory_limit_max'] = "250 * 1 << 20"
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
prometheus_monitoring['enable'] = false
3. 应用更改后的配置、重启gitlab
gitlab-ctl reconfigure
gitlab-ctl restart
四.安装jdk、mvn环境
openJdk1.8自行下载
- 上传到对应目录
- 解压文件 tar -xzvf fileName
- 将openJdk安装到/usr/local目录中并修改名称openjdk
4. 将maven放到/usr/local目录中并修改名称maven
5. 配置maven仓库地址
<mirror>
<id>maven</id>
<mirrorOf>*</mirrorOf>
<name>maven仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
6. 配置maven编译版本
<profile>
<id>jdk8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
五. Jenkins安装
建议使用LTS长期更新版本
- 拉取镜像
- vi编写 docker-compose.yml文件
version: "3.1" # Docker Compose 文件的版本号
services: # 定义服务的部分
jenkins: # 服务的名称
image: jenkins/jenkins:2.452.1-lts # 使用指定的镜像来创建服务容器
container_name: jenkins # 容器的名称
ports: # 端口映射,将主机的端口映射到容器的端口
- "8080:8080" # 映射主机的 8080 端口到容器的 8080 端口
- "50000:50000" # 映射主机的 50000 端口到容器的 50000 端口
volumes: # 数据卷映射,将主机的目录映射到容器的目录
- "./data/:/var/jenkins_home/" # 映射当前目录下的 data 文件夹到容器的 /var/jenkins_home/ 目录
- 给data赋权限
chmod -R 777 data
- 启动
docker-compose up -d
- 查看启动日志
docker logs -f jenkins
7. 进入web页面>ip:8080 (初期启动需要等待较长时间)
- 输入密码
2)选择自定义插件 3)下一步 4)设置新密码
9. 一直下一步到首页
10. 在插件库中下载所需插件
1. Publish Over SSH
2. Git Parameter
六. 配置Jenkins
- 移动openJdk 和 maven到jenkins
cd /usr/local
mv maven /home/dockeradm/docker/docker_jenkins/data/
mv openjdk /home/dockeradm/docker/docker_jenkins/data/
2. 配置jdk和maven
3. 推送配置(Publish over SSH)
目标服务器需要有docker
七. 项目编写
- 创建一个spring boot项目
2. 下载一个openjdk8的基础镜像
docker pull adoptopenjdk/openjdk8
3.创建Dockerfile文件 来制作镜像
FROM adoptopenjdk/openjdk8:latest
COPY lvdian_test.jar /usr/local/
WORKDIR /usr/local
CMD java -jar lvdian_test.jar
- 创建docker-compose.yml运行镜像
version: '3.1''
services:
mytest:
build:
context: ./
dockerfile: Dockerfile
image: lvdian_test:v1.0.0
container_name: mytest
ports:
- 9999:9999
- 上传到gitlab
八. 代码检测SonarQube
- 安装postgres数据库
docker pull postgres
- 安装SonarQube
docker pull sonarqube:9.9.5-community
九. jenkins CI操作
- 在jenkins中创建一个任务
- 下载源码
- maven构建项目
4. 推送并构建运行