配置gitlab.com CI和VPS服务器

图片
在本文中,我决定描述我在配置gitlab CI和租用VPS 方面的经验

背景


在工作中,紫外线。DevOps'y配置为我的项目在部署kubernetes我工作作为围棋开发商)。我有自己的宠物项目-我想自动化,但我并不希望提高自己的gitlab(无论如何,VPS都不是橡胶)。

初始数据



创建存储库


我们创建要自动化的存储库。

我决定进行测试以使用nginx引发docker并转发到html页面。

仓库结构:

  • Docker文件
    FROM nginx:latest
    COPY html /var/www/html
    COPY nginx.conf /etc/nginx/nginx.conf


  • nginx.conf
    events {}
    http {
    server {
        listen 80;
        location / {
                root /var/www/html;
        }
    }
    }


  • html
    • index.html
      <html>
      <h1>Hello, Runner!</h1>
      </html>


  • .gitlab-ci.yml
    
    image: docker:19.03.8
    
    before_script:
      - docker info
    
    build:
      stage: build
      script:
        - docker build -t hellorunner .
    
    deploy:
      stage: deploy
      script:
        - docker ps --filter name=hellorunner --quiet |  xargs --no-run-if-empty docker stop | xargs --no-run-if-empty  docker rm
        - docker run -d --restart=always --name hellorunner -p 8090:80 hellorunner
              
    after_script:
        - docker system prune -f
    


储存库设定


打开设置-> CI

图片

然后,单击“运行器”,展开。
图片

首先,关闭建议的运行器- 禁用共享运行器

图片

然后,我们感兴趣-“手动设置特定运行器”

图片

我们复制令牌,将来将需要它。

VPS准备


安装docker

安装gitlab-runner

注册一个新的跑步者。

在executor字段中,指定Docker版本,就像Dockerfile中一样!
在令牌字段中,指定从gitlab记住的令牌


gitlab-runner register

图片

现在,您需要对跑步者的配置进行一些小的更改。

nano /etc/gitlab-runner/config.toml

领域

volumes = ["/cache"]

改成

volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]

图片

重新启动守护程序

gitlab-runner restart

再次返回gitlab /设置/ CI / Runners。

应该会出现一个活动

图片

的运行器,通过按

图片

编辑运行器,允许执行不带标签的任务,

图片

现在执行推式提交并遵循作业

图片

,最后打开浏览器,

图片

链接到

PS 存储库:我遇到了一个问题-我有一个内部组装的映像,无法访问外部网络,解决方案是创建文件/etc/docker/daemon.json

{
    "dns": ["8.8.4.4", "8.8.8.8"]
}

 service docker restart

All Articles