icon

nazo6.dev

一覧に戻る
2023/8/17 4 min read

Gitlab, Gitlab Pages, Gitlab Runnerをリバースプロキシの背後で動かす

目次


Gitlab, Gitlab Pages, Gitlab Runnerをリバースプロキシの背後で動かす


#概要

GitlabではSSLの設定を一切やらずにリバースプロキシに任せてGitlabとPages,Runnerを動かす。 GitlabでSSLの設定をすると証明書が二重に必要になったりして、めんどい。

#Gitlab, Gitlab Pages

Gitlab runnerだけ別のdocker-composeファイルで管理する。

まず、GitlabとGitlab Pages用のdocker-compose.ymlがこちら。*.example.comを適宜書き換えること。

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: unless-stopped
    hostname: 'git.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        # general
        external_url 'https://git.example.com'
        nginx['listen_port'] = 80
        nginx['listen_https'] = false
 
        # registry
        registry_external_url 'https://cr.example.com'
        registry_nginx['enable'] = true
        registry_nginx['listen_port'] = 5050
        registry_nginx['listen_https'] = false
 
        # pages
        pages_external_url 'https://pages.example.com'
        registry_nginx['enable'] = true
        pages_nginx['listen_port'] = 5056
        pages_nginx['listen_https'] = false
        gitlab_pages['internal_gitlab_server'] = 'http://localhost:80'
    ports:
      - '4444:80'
      # - '22:22'
      - '5055:5050'
      - '5056:5056'
    volumes:
      - './data/config:/etc/gitlab'
      - './data/logs:/var/log/gitlab'
      - './data/data:/var/opt/gitlab'
    shm_size: '256m'

これでdocker-compose up -dをする。結構遅い。自分の非力なサーバーマシンでは3,4分かかった。 そして適宜ポートに適したリバールプロキシを設定する。

#ポイント解説

  • external_url : Gitlab本体のURL。
  • {pages_, registry_}nginx['listen_https'] : これがfalseになっていないとSSL証明書を設定しないといけなくなる。
  • registry_external_url : Gitlab RegistryのURL
  • pages_external_url : Gitlab pagesのURL。ユーザー/グループ名.pages_external_url/プロジェクト名のようなURLになる。

#Gitlab Pagesの別ドメイン

Gitlab PagesのURLはuser.page.example.com/repoのようになるわけだが、例えばrepo.example.comのようなドメインを割り振りたい時がある。 そのような時はGITLAB_OMNIBUS_CONFIG

        gitlab_pages['external_http'] = ['0.0.0.0:5057']

このような感じのものを追加する。このIPとポートはバインドできるためならなんでもよい(カスタムドメインを有効化するためだけの設定で実際にこの値は使わない)。

次に、今回はプライベートなサーバーで面倒くさいのでドメインの検証を管理エリア -> 設定 -> 基本設定 -> Pages -> ユーザーにカスタムドメインの所有を証明することを要求する をオフにする。

この設定を終えるとリポジトリのページでドメインが追加できるようになっているため追加する。 するとDNSの設定でALIASレコードを追加しろと出るが、この方法だとGitlabに証明書を追加したりしないといけないため、今回はDNSではなくリバースプロキシを使う。

今回の自分の設定ではhttp://127.0.0.1:5056repo.example.comに転送する設定を作れば無事そのドメインでアクセスできるようになっているはずだ。

#CI Runner

runner/docker-compose.yml
version: '3.6'
services:
  runner:
    image: 'gitlab/gitlab-runner:latest'
    restart: unless-stopped
    volumes:
      - ./config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
    ports:
      - "8093:8093"

これでdocker-compose up -dするとrunnerが起動する。

次に、これをGitlabに登録する。まず https://git.example.com/admin/runners/new を開いてtagsを適当に設定して、ランナーを作成する。するとトークンが表示されるのでこれをコピーしておく。次にrunnerのコンテナ内で

$ gitlab-runner register

を実行し、gitlabのURLと先ほどのトークンを入力する。エラーが出なければこれで成功。

#参考にしたもの

#関連

Share this article:
一覧に戻る

関連記事

2023/7/2

#tech/git#tech/selfhosted
memo

Gitea Actionsがいつの間にか動かなくなってた

ある日Gitea Actionsが動かなくなっているのを発見。Act Runnerのログを見ると

Read Article

2023/10/29

#tech/selfhosted
memo

Self HostedなFirebase的なもの

プライベートなFaaSとか簡単なデータベースとか(いわゆるFirebase代替)が欲しかったのでセルフホストできるものを探してみた

Read Article

2023/11/27

#tech/selfhosted#tech/synology
blog

Synology NASへのHomebrew(linuxbrew)を使ったNeovimのインストール

Synology NASにいろんなツールをインストールしたいとき(まあ本当はしないほうがいいんですが)、Entwareと呼ばれるツールを使うのが一般的だと思われます。 しかしながら、Entwareはリポジトリが小さく古めなため他に使えるパッケージマネージャがないかと調べていたところ、Homebrewをインストールできるという情報を見かけて試してみました。 このbrewを使ってneovim nightlyをSynology NASにインストールしたいと思います。

Read Article

2023/9/4

#tech/selfhosted
blog

TraccarのデータをH2からMySQLに移行

Traccarを5.9にアプデしたら起動しなくなった。どうやら今までの内部データベース形式はサポートされなくなったみたいです。

Read Article

2023/6/30

#tech/selfhosted
memo

VPNを繋いだときだけDockerの中から特定のサイトにアクセスできない!

タイトル通り。ホストからはどのサイトにもアクセスできて、Dockerの中でもcurl google.comは通るがcurl github.comは通らないなどの謎現象に出会った。

Read Article

2023/7/2

#tech/git#tech/selfhosted
blog

docker-composeでGitea + Gitea Actionsのセットアップ

こんな感じのdocker-compose.ymlで良い

Read Article

2023/11/10

#tech/selfhosted
memo

セルフホスト音楽サーバ/クライアント

Navidrome

Read Article

© 2025 nazo6. All rights reserved.