vscode-ruby-lightのrubocopの機能を使うにはDocker越しではいけないので、devcontainerで開発てしみる実験を始めた。

何故か普通にセットアップして起動しようとすると起動できないのだが、別途 docker-compose up -d rails と起動してやるとrialsサービスにattachしながらVSCodeが起動できるという状態。これは自前でやることなしに上手くできてほしい…… vscodeの実行するコマンドでrailsサービスが適切に指定されてほしい気がする。

ともあれ上手くいった。

自分で入れたghコマンドのauthを通すにはどうしたらいいか考えていたのだけど、ホスト側から ~/.config/gh/hosts.yml をマウントしてあげるのが良さそうだった。これはリポジトリには入れられないので、docker-compose.override.yml のvolumesの設定に書いてattachしてもらうしかないかも。

services.rails.depends_onに指定されているやつをrunServicesに指定したら上手く動いた。これ指定しないといけないのかあ。

{
  "name": "Rails",
  "dockerComposeFile": [
    "../docker-compose.yml"
  ],
  "service": "rails",
  "runServices": [
    "elasticsearch",
    "mysql",
    "redis"
  ],
  "workspaceFolder": "/workspace"
}

docker-compose.override.yml はわざわざ指定しなくてもちゃんと読み込んでくれるっぽい。単純にVSCodeもdocker-composeコマンドを実行しているだけなので当たり前ではあるか。

{
  "name": "Rails",
  "dockerComposeFile": [
    "../docker-compose.yml"
  ],
  "service": "rails",
  "runServices": [
    "rails"
  ],
  "workspaceFolder": "/workspace"
}

こう書いてもいけそうだ。

一度VSCodeのworkspaceを閉じて再度開いてReopen containerするだけではdotfilesは再インストールしてくれないみたいだ。

Git 2.22の機能を使っていたが、Git 2.20が入っていて面倒だったので、それに対応する.bashrcに差し替えたという経緯。

cd /root/dotfiles
git pull
cd -
source ~/.bashrc

で解決させた。

ssh-agentが動いていないのでgit pushなどがhang outする問題のことを忘れていてまた遭遇した。が対処方法を覚えていたので、keychainを使って勝手にssh-agentが起動するようにした。