栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用GitLab运行程序启动服务并防止其停止?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用GitLab运行程序启动服务并防止其停止?

为什么这样做是个坏主意…

正如其文档中明确指出的那样,GitLab Runner “运行 测试 并将结果发送到GitLab”。

而且由于应该及时启动和停止测试,因此设计人员可以在完成每次构建后终止所有已创建的过程。

因此,杀死服务不是 错误 ,而是 功能 。;)

GitLab
CI文档建议使用dpl进行
部署

dpl是一个项目,可让您在各种PaaS提供商(例如Google App Engine,Heroku或Elastic Beanstalk)中部署应用程序。

因此,它会向某些REST API发出一些请求,或者通过Internet推送一些其他数据,并且其过程会很好地退出。

因此,要做您想做的事情实际上需要进行一些修改-覆盖默认的运行器行为。而且,您不应该将它作为长期解决方案,因为它可能会因为某些runner /
gitlab更新而停止工作。

…但是如果您坚持要这样做,那么这是方法:)

好的,这是说明:

  1. 确保您可以使用中的SSH私钥从运行主机托管到本身的SSH

    /root/.ssh/id_rsa
    ,而无需输入密码,也无需确认指纹。
    ssh localhost
    运行
    root
    应该非交互地工作。

  2. 编辑您的gitlab-runner的配置文件,

    /etc/gitlab-runner/config.toml
    使其看起来像这样:

    [[runners]]

    name = “your-runner-name”
    url = “https:///ci”
    token = “
    tls-ca-file = “”
    executor = “ssh”
    [runners.ssh]
    user = “root”
    password = “”
    host = “localhost”
    port = “22”
    identity_file = “/root/.ssh/id_rsa”

(跑步者将在保存配置文件后重新加载自身)

  1. 编辑您的服务脚本,这样它将创建的进程将不是init脚本的子进程,并且不会打开stdin,stdout和stderr:

    #!/usr/bin/env bash

    export JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre/bin/java
    export MODE=service
    export APP_NAME=gitlab-runner-test
    export PID_FOLDER=/var/run/gitlab-runner-test

    /var/gitlab-runner-test/gitlab-runner-test.war $* <&- >&- 2>&- & disown

通过重试上次构建或提交项目回购进行测试。


PS我用如下初始化脚本测试了我的解决方案:

#!/usr/bin/env bashstart() {  # Completely disowned process, not a child  # Credits: Joe at https://stackoverflow.com/a/26420299/2693875  sleep 99999 <&- >&- 2>&- & disown  exit 0}stop() {  echo "doing nothing"  exit 0}echo "running on $HOSTNAME..."case "$1" in  start)    start    ;;  stop)    stop    ;;  *)    echo $"Use this options $0 {start|stop}"    exit 1esac

..在具有gitlab-multi-runner v.1.02和GitLab CE 8.5.0的Ubuntu 14.04上。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647706.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号