ブログ

  • Docker for WindowsにGitLabとGitLab-Runnerを入れた話

    あんまり記事が見つからなかったからメモ

    なんか知らんけど時間かかった。。。

    Docker for Windowsとdocker-compressは入れとけ

    いつ入れたか僕は覚えてない

    こっからやったこと

    適当にフォルダ作る

    E:\Users\root\Documents\GitLab

    とか

    配下にcompress.ymlを下記で作成

    services:
      web:
        image: 'gitlab/gitlab-ce:latest'
        restart: always
        hostname: 'localhost'
        environment:
          GITLAB_OMNIBUS_CONFIG: |
            external_url 'http://web:8929'
            gitlab_rails['gitlab_shell_ssh_port'] = 2224
        ports:
          - '8929:8929'
          - '2224:22'
        volumes:
          # Windows環境でのパーミッション問題を避けるため、名前付きボリュームの使用を推奨
          - gitlab_config:/etc/gitlab
          - gitlab_logs:/var/log/gitlab
          - gitlab_data:/var/opt/gitlab
        networks:
          - gitlab-net
    
      runner:
        image: 'gitlab/gitlab-runner:latest'
        restart: always
        depends_on:
          - web
        volumes:
          - ./config.toml:/etc/gitlab-runner/config.toml
          # Windows上のDockerソケットをマウントし、Runner内からDockerを操作可能にする
          - /var/run/docker.sock:/var/run/docker.sock
        networks:
          - gitlab-net
    
    networks:
      gitlab-net:
        name: gitlab-net
    
    volumes:
      gitlab_config:
      gitlab_logs:
      gitlab_data:

    同じディレクトリにconfig.tomlを作成

    concurrent = 1
    check_interval = 0
    connection_max_age = "15m0s"
    shutdown_timeout = 0
    
    [session_server]
      session_timeout = 1800

    たぶん作らなくてもいい

    ごちゃごちゃやってて作ったけどいらんやろたぶん

    作ったcompress.ymlのあるディレクトリでpowershellで以下実行

    PS E:\Users\root\Documents\GitLab> docker compose up -d

    パスワードの確認

    docker exec gitlab-web-1 cat /etc/gitlab/initial_root_password

    一日で消えるらしい(めんどくs

    GitLabで適当にRunner作ってトークン取得してpowershellで以下実行

    docker compose exec runner gitlab-runner register   --non-interactive   --url "http://web:8929/"   --token "【トークン記載】"   --executor "docker"   --docker-image "docker:stable"   --docker-volumes "/var/run/docker.sock:/var/run/docker.sock"   --docker-network-mode "gitlab-net"

    たったこれだけのことなのになんでこんなに時間かかったのか。。

    localのIPをhostsにwebとして追加しとかないとめんどくさい