-
Notifications
You must be signed in to change notification settings - Fork 3
Add VSCode devcontainer用の設定を追加 #82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
素朴な疑問ですが、Rails + PostgreSQLの構成であれば、 |
なるべく手順を削りたい、コンテナ起動後に
あたりのことはできるようにしたいと思っています。 Dockerfileの配置が.devcontainer内でないのは、イメージをビルドする時点でbundle installやbundle updateを実行するためです(親ディレクトリのコードはADDできなかったはず) とはいえ、ある程度公式から出たモノに近づけるのは良いことだと思うので、できる範囲で変更してみました。 45d00d8 |
DockerfileでADDする必要は無く、devcontainer.jsonのライフサイクルスクリプトで、 上記だけではわかりにくいと思いますので、以下にサンプルコード的なものを記載しておきます。
|
※上記サンプルのRubyのバージョンなどは、現行のDebian 11(bullseye)の標準パッケージで動作させることを想定しているため標準パッケージでインストールされるバージョンに合わせています。 https://packages.debian.org/bullseye/ruby |
Dockerfileの中でbundle install, bundle updateしておくとgemを含んだ状態でイメージがつくられるので、コンテナ起動時のbundle installにかかる時間がかなり減るのが良いところなんですよね。 補足事項で書かれているとおり.devcontainerディレクトリで完結させる良さもとてもよくわかるので、悩みどころです |
私の場合ほぼ毎日Redmineの開発用コンテナを起動しているのでここをすごく大事に感じるのですが、Redmineパッチ会のタイミングで起動するくらいの感じなら毎回遅くても気にならないでしょうし、素直に .devcontainerディレクトリに修めるのを優先した方が良いような気がしてきました。 |
以下のリファレンスによれば https://code.visualstudio.com/docs/remote/devcontainerjson-reference#_lifecycle-scripts
ってなっているので、普通にイメージに含まれてる感じですけどね? |
イメージに bundle の gem を含めてしまうと、branch を行ったり来たりするとき辛くなりませんか? bundle config set path '/path/to/bundle' で bundle の保存場所を指定できるので、私の環境では Dockerfileで保存場所を設定しておいて、docker-compose.yml で bundle 保存用のボリュームを作成しています。定期的にボリュームを作り直して掃除することが前提ですが。 |
ブランチを切り替えたときにそこまでgemパッケージのバージョンって変わります? あと、このチケット自体が
という要望が発端だと思うので、このリポジトリの各ブランチで 正直なところ、もしブランチを切り替えてgemパッケージのバージョン問題が出たら、 |
あれ、説明をうまく飲み込めていませんでした;本当ですね gemについては、私もよく5.0と4.2を行ったり来たりするんですがbundle update すれば大体動くイメージです |
一時期(今でも)、Rails を7にしてたり戻したりしたんですが、確かに過剰なやりかたかもしれません。 |
コード的にはいい感じになったと思います。 現時点ではReadmeの内容まで精査できていないので、 |
Readmeの記載内容について全て記載していくと重箱の隅をつつくようなことになるので、 ソースコードブロックのコマンド表記そのままコピペできるように ※markdownlintでも警告が表示されます 上記以外の点については、このissueの内容からは外れてしまうため、 |
README.md
Outdated
$ cd ./redmine-dev-mirror | ||
``` | ||
|
||
* 必要に応じて.envを書き換える(portの衝突がなければデフォルトでも動きます) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
こちら、.envファイルが.devcontainer/.envに移動しているようでしたので、修正が必要と思います。
なお、Windowsのエクスプローラー、MacのFinderからドットファイルを開くのは、初心者の方には少し難しいかもしれませんので、VSCodeで先にフォルダを開いてからとかの方が分かりやすいかもしれません...。
(が、後からの修正で問題ないと思います。)
@ishikawa999
私の方、普段はMacホスト環境+rbenv+VSCodeでフォルダを行ったり来たりしてデバッグしている感じ😅なので、VSCode+RemoteContainerでのレスポンス周りの違いは良く分かりませんが、少し触った感じだと十分OKなように感じました。 なお、別件で、 @wate さん記載の公式のリポジトリ・フォルダの履歴を少し見たんですが、 以下の今年1月のPR差分で、sqltools拡張が削除されているようでした。 が、リンクしているIssueを確認したところ、1月に元の開発者が新しいメンテナを募集したところ、どうも5月に新しいメンテナさんが見つかったらしく、このまま利用を続けるのも問題なさそうに思いましたので、念のため記載しておきます😄 |
@wate @sanak
コマンドとコマンドの結果を区別できるように $ で書くことが多いのですが、このREADMEの場合とくに結果を書いていないので$がない方が良いですね、対応します
気づいていませんでした、対応します! VSCodeのデバッグを普段使っていなくて正しい挙動があまりわかっていなかったので、検証していただき助かりました 🙇 |
d2626ca でREADMEを更新しました。 |
@ishikawa999 上記対応、ありがとうございます! |
本件の対応で以下のissueの要件も満たせていると思うので、 refs #79 ※上記のissueでは題名が動画とはなっていますが、必ずしも動画である必要はなく、 |
@juno-nishizaki @matobaa (CC: @kfischer-okarin) |
Resolve chrome container crashing issue
Patch can be downloaded here |
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
* Add VSCode devcontainer用の設定を追加 * Add docker-compose.yml * Move Dockerfile-for-redmine-dev-mirror to .devcontainer/Dockerfile * Fix Rubyのバージョン変更の手順 * Update README.md * Update DockerfileでADDしなくなったことによって機能しなくなっていたコードを削除
現在は https://github.com/ishikawa999/redmine_development_docker と このリポジトリを両方cloneしてredmine_development_dockerのDockerfileを使ってVSCodeのRemote dev container機能を使った開発手法がパッチ会で主流になっていますが、
redmine_development_dockerの設定ファイルをこのリポジトリで持つことで利用するリポジトリを減らしたり利用手順を簡単にできそうです。
(まだざっくりとしか作り込めていませんが、)使ってみてフィードバックをいただきたいです。利用手順はREADMEに記載しています。