Gitlab を実行しているサーバーがあります。住所が であるとしましょうhttps://gitlab.mydomain.com
。
今私が達成したいのは、継続的インテグレーション システムをインストールすることです。私は Gitlab を使用しているので、Gitlab CI を選びました。より自然な方法だと感じたからです。そこで、Docker リポジトリにアクセスすると、このイメージが見つかりました。
そのため、イメージを実行して、次のコンテナを作成します
docker run --restart=always -d -p 9000:9000 -e GITLAB_URLS="https://gitlab.mydomain.com" anapsix/gitlab-ci
起動するのに 1 分ほど待つと、URL から CI にアクセスできるようになりましたhttp://gitlab.mydomain.com:9000
。ここまでは順調ですね。
CI にログインすると、次のメッセージが表示されます。
Now you need Runners to process your builds.
Docker Hub に戻ると、この別のイメージが見つかります。どうやらこのイメージを起動するには、インタラクティブに実行する必要があります。指示に従うと、構成ファイルが作成されます。
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 を含むコンテナーが再実行されるたびに、新しいランナーを登録するためのトークンが異なります。
どうすればこの問題を解決できますか?