optdev搭建

147 阅读3分钟

一. docker离线安装并注册为服务

参考地址

二. docker-compose 安装

  1. 下载 docker-compose-linux-x86_64

image.png

  1. 添加可以执行权限
chmod +x docker-compose-linux-x86_64 
  1. 将文件放入可执行文件APTH目录
echo $PATH
mv docker-compose-linux-x86_64 /usr/bin/

image.png

image.png

  1. 重命名
mv docker-compose-linux-x86_64 docker-compose

image.png

image.png

  1. 安装完成

三. gitlab安装

  1. 查询镜像
dockers search gitlab/gitlab

image.png 2. 下载镜像

docker pull gitlab/gitlab-ce:latest
  1. 创建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
  1. 运行容器
docker-compose up -d

image.png 5. 默认用户名 root 密码进入容器查看默认密码

docker exec -it gitlab bash
cat /etc/gitlab/initial_root_password

image.png

  1. 修改密码 每个版本不一样 image.png

image.png

#######内存优化
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环境

下载maven

openJdk1.8自行下载

  1. 上传到对应目录
  2. 解压文件 tar -xzvf fileName
  3. 将openJdk安装到/usr/local目录中并修改名称openjdk

image.png 4. 将maven放到/usr/local目录中并修改名称maven

image.png 5. 配置maven仓库地址

	<mirror>
		<id>maven</id>
		<mirrorOf>*</mirrorOf>
		<name>maven仓库</name>
		<url>https://maven.aliyun.com/repository/public</url>
	</mirror>

image.png 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>

image.png

五. Jenkins安装

Jenkins

建议使用LTS长期更新版本

image.png

  1. 拉取镜像 image.png
  2. vi编写 docker-compose.yml文件

image.png

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/ 目录
  1. 给data赋权限
chmod -R 777 data
  1. 启动
docker-compose up -d
  1. 查看启动日志
docker logs -f jenkins

image.png 7. 进入web页面>ip:8080 (初期启动需要等待较长时间)

  1. 输入密码

image.png

2)选择自定义插件 3)下一步 4)设置新密码

image.png 9. 一直下一步到首页

image.png 10. 在插件库中下载所需插件

1. Publish Over SSH
2. Git Parameter

六. 配置Jenkins

  1. 移动openJdk 和 maven到jenkins
cd /usr/local
mv maven /home/dockeradm/docker/docker_jenkins/data/
mv openjdk /home/dockeradm/docker/docker_jenkins/data/

image.png 2. 配置jdk和maven

image.png

image.png

image.png 3. 推送配置(Publish over SSH)

image.png

image.png

目标服务器需要有docker

image.png

七. 项目编写

  1. 创建一个spring boot项目 image.png

image.png

image.png 2. 下载一个openjdk8的基础镜像

docker pull adoptopenjdk/openjdk8

image.png 3.创建Dockerfile文件 来制作镜像

FROM adoptopenjdk/openjdk8:latest  
COPY lvdian_test.jar /usr/local/  
WORKDIR /usr/local  
CMD java -jar lvdian_test.jar
  1. 创建docker-compose.yml运行镜像
version: '3.1''
services:
  mytest:
    build:
      context: ./
      dockerfile: Dockerfile
    image: lvdian_test:v1.0.0
    container_name:  mytest
    ports:
      - 9999:9999
  1. 上传到gitlab

image.png

八. 代码检测SonarQube

  1. 安装postgres数据库
docker pull postgres
  1. 安装SonarQube
docker pull sonarqube:9.9.5-community

九. jenkins CI操作

  1. 在jenkins中创建一个任务

image.png

image.png

  1. 下载源码 image.png
  2. maven构建项目

image.png

image.png 4. 推送并构建运行

image.png

image.png