Skip to content
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

injeshのコンテナ名からdockerのコンテナを特定したい #41

Open
yassi-github opened this issue Mar 16, 2022 · 4 comments

Comments

@yassi-github
Copy link
Collaborator

execするとき、引数は、injeshのコンテナ名と実行コマンドのみ。
実行にはdockerコンテナのpidが必要。
よって、injeshのコンテナ名からdockerコンテナの名前を算出する必要がある。どうすればよいか?

モックでは、dockerコンテナidを記述したテキストファイルを、~injesh/containers/<name>/target_idとして保存したものを使っていた。
(container.rsからpid出せるからいらんかなと思って仕様に入れなかった)

  • 引数を増やすのは避けたい
  • Fileでも使いそうだし、utilsあたりに公開関数として実装したほうがいいかも

提案1

~/.injesh/containers/<name>/target_idからidを取得する

メリット:

  • 単純
  • 実装が楽
    デメリット:
  • launch時にファイル生成処理が追加で必要になる
  • 安直

提案2

mount情報から、~/.injesh/containers/<name>/rootfs/をlowerdirとするマウントポイントを取得し、
dockerコンテナ総当りでContainer::new()?.mergeddirと一致するか探索する

メリット:

  • 仕様変更の必要がない
    デメリット:
  • 計算量がデカすぎる

提案3

引数のinejshコンテナ名 == dockerコンテナ名にしてしまう

メリット:

  • 単純
  • ユーザから見てデバッグ対象が明確になる
    デメリット:
  • injeshコンテナ : dockerコンテナ = 1 : 1 の制限がつく
  • launchの引数が一つ減る変更が生じる

Summary

実装が楽か 仕様変更が少ないか 使いやすいか 備考
提案1 O O O 安直。read onlyにすべき
提案2 X O 総当りは計算量が多すぎ
提案3 O injesh : docker = 1 : 1 となってしまう

意見求ム

@higuruchi
Copy link
Owner

提案4

launchする際に~/.injesh/containers/<name>/setting.yamlにデバック対象コンテナに関する情報を記述する

@yassi-github
Copy link
Collaborator Author

よさそう

@higuruchi
Copy link
Owner

設定ファイルの仕様とか全然決めてなくてlaunchコマンドの時ファイル生成して何も書き込んでないから、また後で詳細な部分決めるか

@yassi-github
Copy link
Collaborator Author

mergeしてからcloseするか

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants