Docker一键部署GitLab+Jenkins【本地持久化】

docker-compose安装配置

二进制安装

1、下载最新版的 docker-compose 二进制执行文件。

sudo curl -L https://github.com/docker/compose/releases/download/1.24.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

2、配置可执行权限。

sudo chmod +x /usr/local/bin/docker-compose

3、测试是否安装成功。

docker-compose --version 

使用docker-compose启动yml,一键配置和启动容器

对于容器开机启动,本地数据持续化,保留数据

安装docker-compose

运行:

docker-compose up -d

但是这样运行的话,可能jenkins会运行,但是会报错,因为jenkins_home的权限不够,导致无法写入数据。

编写一个shell脚本,和这个docker-compose.yml放在一个目录下

直接运行这个脚本,就可以实现gitlab和jenkins的完美运行。

两个 开始消耗的内存和cpu过大,需要等待一会就可以了。

git.sh

#!/bin/bash
mkdir -p /usr/local/docker/jenkins/jenkins_home
chown -R 1000:1000 /usr/local/docker/jenkins/jenkins_home
docker-compose up -d

docker-compose.yml

version: '3'
services:
    gitlab:
      image: twang2218/gitlab-ce-zh:9.4
      restart: always
      hostname: 192.168.1.100
      environment:
        TZ: 'Asia/Shanghai'
        GITLAB_OMNIBUS_CONFIG: |
          external_url 'http://192.168.1.100:8080'
          gitlab_rails['gitlab_shell_ssh_port'] = 2222
          unicorn['port'] = 8888
          nginx['listen_port'] = 8080
      ports:
        - '8080:8080'
        - '8443:443'
        - '2222:22'
      volumes:
        - /usr/local/docker/gitlab/config:/etc/gitlab
        - /usr/local/docker/gitlab/repo:/var/opt/gitlab
        - /usr/local/docker/gitlab/logs:/var/log/gitlab

    jenkins:
      restart: always
      image: jenkins/jenkins
      container_name: docker_jenkins
      ports:
        - '8081:8080'
        - '50000:50000'
      volumes:
        - /usr/local/docker/jenkins/jenkins_home:/var/jenkins_home
      environment:
            JAVA_OPTS: '-Djava.util.logging.config.file=/var/jenkins_home/log.properties'

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
搭建项目自动框架需要以下步骤: ## 1. 安装 DockerDocker Compose Docker 是一种容器技术,可以轻松部署和管理应用程序。Docker Compose 是 Docker 的一个工具,可以通过 YAML 文件定义和运行多个容器。 ## 2. 安装 Jenkins Jenkins 是一个流行的开源持续集成和持续交付工具,可以自动构建、测试和部署应用程序。 可以使用 Docker 安装 Jenkins,具体步骤如下: ```bash docker run -d --name jenkins -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts ``` 其中,`-d` 参数表示以后台模式运行容器,`--name` 参数指定容器名称,`-p` 参数指定宿主机和容器之间的端口映射,`jenkins/jenkins:lts` 表示使用最新的 Jenkins 长期支持版本。 ## 3. 安装 Git Git 是一个流行的分布式版本控制系统,可以管理代码变更历史记录。 可以使用以下命令安装 Git: ```bash sudo apt-get install git ``` ## 4. 安装 Pytest Pytest 是一个 Python 测试框架,可以用于编写单元测试和集成测试。 可以使用以下命令安装 Pytest: ```bash pip install pytest ``` ## 5. 安装 Allure Allure 是一个用于生成漂亮测试报告的开源框架,支持多种语言和测试框架。 可以使用以下命令安装 Allure: ```bash sudo apt-add-repository ppa:qameta/allure sudo apt-get update sudo apt-get install allure ``` ## 6. 编写 Docker Compose 文件 在项目根目录下创建一个名为 `docker-compose.yml` 的文件,并添加以下内容: ```yaml version: '3' services: jenkins: image: jenkins/jenkins:lts container_name: jenkins ports: - "8080:8080" - "50000:50000" volumes: - "./jenkins_home:/var/jenkins_home" restart: always app: build: . command: pytest volumes: - "./:/app" depends_on: - jenkins environment: - ALLURE_RESULTS_DIR=allure-results restart: always ``` 其中,`jenkins` 服务使用 Jenkins 镜像启动一个容器,并映射宿主机的 `8080` 和 `50000` 端口到容器的同名端口上。`volumes` 参数指定将 Jenkins 主目录挂载到宿主机的 `./jenkins_home` 目录上,以便持久存储 Jenkins 配置和数据。 `app` 服务使用当前目录的 Dockerfile 构建一个容器,并运行 Pytest 命令。`volumes` 参数将当前目录挂载到容器的 `/app` 目录上,以便容器内部可以访问测试代码和配置文件。`depends_on` 参数指定 `app` 服务依赖 `jenkins` 服务。`environment` 参数指定测试结果将存储在 `allure-results` 目录中。 ## 7. 编写 Jenkinsfile 在项目根目录下创建一个名为 `Jenkinsfile` 的文件,并添加以下内容: ```groovy pipeline { agent { docker { image 'python:3.8-slim' } } stages { stage('Build') { steps { sh 'pip install -r requirements.txt' } } stage('Test') { steps { sh 'pytest --alluredir allure-results' } post { always { allure([ includeProperties: false, jdk: '', properties: [], reportBuildPolicy: 'ALWAYS', results: [[path: 'allure-results']] ]) } } } } } ``` 其中,`agent` 参数指定使用 Docker 容器运行 Jenkins Pipeline。`stages` 参数指定多个阶段,包括 `Build` 和 `Test`。 在 `Build` 阶段中,使用 `pip` 命令安装测试依赖。在 `Test` 阶段中,使用 `pytest` 命令运行测试,并将测试结果存储在 `allure-results` 目录中。 `post` 参数指定后置动作,使用 Allure 插件生成测试报告。 ## 8. 启动 Jenkins 和应用程序 使用以下命令启动 Jenkins 和应用程序: ```bash docker-compose up ``` ## 9. 在 Jenkins 中创建 Pipeline 访问 `http://localhost:8080`,使用初始密码登录 Jenkins。在首页中选择“新建 Item”,创建一个名为 `my-pipeline` 的 Pipeline 项目。 在配置页面中,选择“Pipeline script from SCM”,并指定 Git 仓库地址和 Jenkinsfile 所在的分支。 保存配置后,点击“Build Now”按钮,即可开始构建项目。在项目构建完成后,可以在 Allure 报告中查看测试结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南宫乘风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值