-
Notifications
You must be signed in to change notification settings - Fork 4
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
Setup devcontainer #76
Conversation
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.
問題なさそうです!
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.
devcontainer でテストしてすべてパスしました.
qulacs-osaka のほうでは base image がよしなにしてくれているのか postStartCommand
で sudo
が使えるんですよね...
前に作った Docker image では entrypoint.sh で gosu を噛ませているんですが,gosu を実行しているのは root なので今回のケースとは違いました.Dockerfile で |
このようなエラーが出てビルドに失敗しました… |
@kotamanegi |
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.
OKです:+1:
うまくテストが通ることを確認できました!
概要
LaTeX と Python + Poery環境が使えるdevcontainerを作成しました。
LaTeXを必要とするテストが
make test USE_LATEX=yes
で実行できるので、テストが実行できることを確認して欲しいです。
気にしたこと
コンテナ内の実行ユーザーとホストのユーザーのUID/GIDを一致させる
docker-compose
した時に、docker-compose.yml
と同じディレクトリにある.env
を読み込んでくれるので、devcontainer.json
のinitializeCommand
でinit.sh
を実行し、.env
にホストのUID/GIDを出力するようにしているdocker-compose.yml
ではargs
で渡し、Dockerfile
ではARG
で受け取れるVolume mountした
.venv
フォルダの所有権をroot
から一般ユーザとして用意しているvscode
ユーザに変更するvscode
ユーザでもPython仮想環境を作成して、.venv
に書き込めるようにするためdevcontaier.json
のpostStartCommand
で実行するので、vscode
ユーザでsudo chown vscode .venv
を実行したい。しかし、sudo
が無いので、gosu
を使った。gosu
そのまま使っても、root
ユーザとして実行出来なかったとなってしまう。
Dockerfile
で事前にchmod +s /usr/sbin/gosu
するようにして解決した。しかし、この対処が正しいのかどうかが分かっていない(こんなことをしなくてもgosu
は使えるんじゃないかなと思っている)。