zoukankan      html  css  js  c++  java
  • docker 部署gitlab 构建CI/CD流水线

    拉取镜像 启动容器 暴露出来 9980和9922端口

    docker pull gitlab/gitlab-ce:latest
    
    mkdir -P /data/gitlab-test/etc /data/local/gitlab-test/log /data/local/gitlab-test/opt
    docker run 
     -itd  
     -p 9980:80 
     -p 9922:22 
     -v /data/gitlab-test/etc:/etc/gitlab  
     -v /data/local/gitlab-test/log:/var/log/gitlab 
     -v /data/local/gitlab-test/opt:/var/opt/gitlab 
     --restart always 
     --privileged=true 
     --name gitlab-test 
     gitlab/gitlab-ce
    

    进入容器修改基本配置 字面意思看描述修改

    docker exec -it gitlab-test /bin/bash

    production: &base
    
      gitlab:
        ## Web server settings (note: host is the FQDN, do not include http://)
        host: xx.xx.xx.xx  # 你的主机IP
        port: 9980
        https: false
        ssh_host: xx.xx.xx.xx  # 你的主机IP
        # If your ssh user differs from the system user, you need to specify it here
        # Set it to an empty string to omit the username from any ssh url altogether
        ssh_user:
      gitlab_shell:
        # If you use non-standard ssh port you need to specify it
        ssh_port: 9922
    
    

    让配置生效

    gitlab-ctl reconfigure
    gitlab-ctl restart
    
    # 同时修改密码
    gitlab-rails console
    user = User.where(id: 1).first
    或者
    user = User.find_by(email: 'admin@example.com')
    user.password = '你的密码'
    user.password_confirmation = '你的密码'
    user.save
    

    登录之后默认会有个Monitoring 项目 可以开始配置gitlab Runners,进行gitlab cicd 的自动构建

    首先在设置里面找到注册runner的url 和 token:如下图所示

    我选择的是在docker里面启动runnser服务 官方地址:https://docs.gitlab.com/runner/install/docker.html

    可以有2种方式一种是使用本地的存储卷,一种是使用docker存储卷 我使用本地存储
    https://docs.gitlab.com/runner/install/docker.html

    docker run -d --name gitlab-runner --restart always 
         -v /srv/gitlab-runner/config:/etc/gitlab-runner 
         -v /var/run/docker.sock:/var/run/docker.sock 
         gitlab/gitlab-runner:latest
    
    ### 在 macOS, 使用 /Users/Shared 替换 /srv
    ### 注册runner https://docs.gitlab.com/runner/register/index.html#docker
    docker run --rm -it -v /srv/gitlab-runner/config:/etc/gitlab-runner gitlab/gitlab-runner register
    
    ### 注册的时候会选择执行器,可以根据需要选择 我选择了shell 和 docker,一次注册只能选择一个执行器
    ### 根据选项一步一步注册就好了 tag 和 描述要写好,在后面的.git-ci.yam 配置里面会用到
    

    配置 ci/cd 描述文件

    default:
      tags: 
        - docker
      
    
    before_script:
      - export PACKAGE_NAME=${CI_PROJECT_NAME}_${CI_COMMIT_SHA:0:8}.zip
    
    stages:          # List of stages for jobs, and their order of execution
      - build
    build-job:       # This job runs in the build stage, which runs first.
      stage: build
      script:
        - echo "Compiling the code..."
        - echo "Compile complete."
        - go build main.go
      artifacts:
        expire_in: 1 week
        when: on_success
        paths:
          - main
    
    # archive_package:
    #   stage: package
    #   script:
    #   - zip -r ${PACKAGE_NAME} main
    #   artifacts:
    #     expire_in: 1 week
    #     when: on_success
    #     untracked: true
    #     paths:
    #       - ${PACKAGE_NAME}
    #   tags:
    #     - docker
    #   only:
    #     - tags
    

    在cd/cd Pipeline 菜单里面执行作业:

    通过 artifacts 关键字可以生成构建物,在仓库的tag 里面可以进行下载

    具体的 .gitlab-ci.yml 文件语法可以参考官方文档

    https://docs.gitlab.com/ee/ci/yaml/

    构建结果

    注意事项

    1. gitlab 和 runner 的版本要一致,否则可能出现构建记录无法出现的错误
    2. 可以通过 docker logs id 查看具体的日志
    落霞与孤鹜齐飞,秋水共长天一色。
  • 相关阅读:
    Lucene.Net
    关于数据库优化问题总结
    网页幻灯片效果
    ASP.NET邮件发送
    【收藏】悟透JavaScript(李战)
    JS之显示、隐藏控件方法
    初学自定义验证码
    js之判断浏览器类型及版本号
    js清空上传控件的值
    vs2008学习之路
  • 原文地址:https://www.cnblogs.com/sening/p/15489387.html
Copyright © 2011-2022 走看看