以前、アップしたWindows+Docker+GitLabを構築した時の話では、Push/Pullができませんでしたが、Docker-composeを使って結構楽ちんに設定ができたので、改めてそちらの手順を記載していきます。
(docker-composeについては、別でまとめて行きたいと思ってます。)
環境
- Windows(10, ホスト)
- Docker Desktop for Windows(20.10.8)
- git(2.29.2.windows.2)
前提
- Docker Desktop for Windowsインストール済
- gitインストール済
- ssh key発行済
参考
手順
1. docker-compose.ymlを作る
適当な作業フォルダを作成し、その中にdocker-compose.ymlを作ります。
(念のためymlはutf-8で作ってます)
version: "3.9"
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'gitlab.example.com'
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://web:8929'
gitlab_rails['gitlab_shell_ssh_port'] = 2224
ports:
- '8929:8929'
- '2224:22'
- '443:443'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
2. コンテナを立ち上げる
まずは、cd
コマンドで先ほど作成したymlファイルが置いてあるフォルダへ移動します。
> cd {docker-compose.ymlが格納してあるフォルダ}
そして、念のためdocker-compose
コマンドが有効化確認しましょう。
(確実に使用できる場合は、確認不要です。)
> docker-compose -v
Docker Compose version v2.0.0
念願の起動の瞬間です。
バックグラウンドで実行されるので、2~3分ほど待ちましょう。
> docker-compose up -d
3. アクセス
http://localhost:8929/
もしくは、http://{ホスト名 or プライベートIP}:8929/
でアクセスできます。
起動中だとこんな感じになります。
ログイン画面が表示されます!
4. 初期設定
初回アクセスするとrootユーザーのパスワード設定画面が表示されるという記事があったのですが、
↑のスクショの通り、どうも普通のログイン画面っぽいです。
その時は、コンソールからパスワードを設定するしかない模様。
DockerコンソールからCLIを開きrailsコンソールを起動する
ホスト側のコマンドプロンプトが開きっぱなしならそれを開いて、docker-compose.ymlがあるフォルダまで移動します。
そのフォルダで下記コマンドを実行し、コンテナでコマンドを実行していきます。
> docker-compose exec web bash
rails コンソールを起動する
# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.4p191 (2021-07-07 revision a21a3b7d23) [x86_64-linux]
GitLab: 14.3.2 (92acfb1b8a9) FOSS
GitLab Shell: 13.21.1
PostgreSQL: 12.7
--------------------------------------------------------------------------------
Loading production environment (Rails 6.1.3.2)
『>』以降のコマンドを実行する
下記は、パスワードを『password』に設定した例
irb(main):001:0> user = User.find(1)
=> #<User id:1 @root>
irb(main):002:0> user.password = 'password'
=> "password"
irb(main):003:0> user.password_confirmation='password'
=> "password"
irb(main):004:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 0815a361-498c-4906-a307-7129eaf9f917) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007fa509bbe9b8 @uri=#<URI::GID gid://gitlab/User/1>>]}
=> true
IDに『root』、Passwordに先ほど設定した『password』を入力してログインすると、無事ログインできます。
5. git cloneを試す
Windows側でSSH Keyを生成しておき、Publicの方を登録します。
↓こんな感じになっていると思いますが、今回はSSHでCloneします。
ちなみにこのままだとCloneできないので、web
のところをlocalhost
もしくは、プライベートIPにする必要があります。
cloneはgitコマンドを使用しました。
gitコマンドがインストールされているかは、確認のうえ実行をお願いします。
Sourcetree
などのツールを使ってもいけます。
> git --version
git version 2.29.2.windows.2
> git clone ssh://git@localhost:2224/root/test.git
あとがき
docker-composeは、この環境設定する際に初めて使ったのですが、シンプルでわかりやすく
『すげぇ・・・』って思いました。
しかしながら、ネットワーク周りはまだまだvagrantの方が吸収しやすいですね(個人の感想)