使用Docker为CI和运行程序安装Gitlab CI,并在重新启动后使其持久化

使用Docker为CI和运行程序安装Gitlab CI,并在重新启动后使其持久化,docker,gitlab,gitlab-ci,Docker,Gitlab,Gitlab Ci,我有一台运行Gitlab的服务器。假设地址是https://gitlab.mydomain.com 现在我想实现的是安装一个持续集成系统。因为我使用的是Gitlab,所以我选择了Gitlab CI,因为它感觉更自然。所以我去了Docker repo找到了 因此,我运行该图像来创建一个包含以下内容的容器 docker run --restart=always -d -p 9000:9000 -e GITLAB_URLS="https://gitlab.mydomain.com" anapsix/g

我有一台运行Gitlab的服务器。假设地址是
https://gitlab.mydomain.com

现在我想实现的是安装一个持续集成系统。因为我使用的是Gitlab,所以我选择了Gitlab CI,因为它感觉更自然。所以我去了Docker repo找到了

因此,我运行该图像来创建一个包含以下内容的容器

docker run --restart=always -d -p 9000:9000 -e GITLAB_URLS="https://gitlab.mydomain.com" anapsix/gitlab-ci
我给它一分钟时间启动,现在我可以通过URL
http://gitlab.mydomain.com:9000
。到目前为止还不错

我登录CI,收到以下消息:

Now you need Runners to process your builds.
所以我回到码头中心,我发现了。显然,要启动这个图像,我必须以交互方式进行。我按照说明操作,它将创建配置文件:

mkdir -p /opt/gitlab-ci-runner
docker run --name gitlab-ci-runner -it --rm -v /opt/gitlab-ci-runner:/home/gitlab_ci_runner/data sameersbn/gitlab-ci-runner:5.0.0-1 app:setup
交互式设置将要求我提供所需的正确数据:

Please enter the gitlab-ci coordinator URL (e.g. http://gitlab-ci.org:3000/ )
http://gitlab.mydomain.com:9000/
Please enter the gitlab-ci token for this runner: 
12345678901234567890
Registering runner with registration token: 12345678901234567890, url: http://gitlab.mydomain.com:9000/.
Runner token: aaaaaabbbbbbcccccccdddddd
Runner registered successfully. Feel free to start it!
我去
http://gitlab.mydomain:9000/admin/runners
,万岁,跑步者出现在舞台上

一切似乎都很好,但问题来了:

如果由于更新或其他原因重新启动机器,运行程序将不再存在。当我运行运行程序的映像时,我可能会将
--restart=always
添加到命令中,但这会有问题,因为:

  • 设置是交互式的,因此注册跑步者的令牌必须手动输入
  • 每次重新运行带有Gitlab CI的容器时,注册新运行者的令牌都是不同的

  • 我怎样才能解决这个问题呢?

    我有办法给你指出正确的方向,但我自己也在努力,希望我们都能解决这个问题。这是我的情况

    我正在使用coreOS+docker来做你想做的事情,在coreOS中,你可以设置一个服务,每当你重新启动机器(以及gitlab和其他)时,它就会启动CI。我的问题是,要让同样的安装自动进行

    经过一番挖掘,我发现:

    在本文档中,他们声明可以通过两种方式完成:

    • 1-将包含凭据的.dockercfg文件装入/root 目录

    • 2-使用以下信息启动容器:

    • -e CI_服务器\u URL=\

    • -电子注册令牌=123456789001234567890\
    这意味着您可以设置为使用您的配置自动启动CI,我已经尝试了两天,如果您能够做到,请告诉我如何进行=(