Skip to content

Dockerで起動したWHEELで、作成されるプロジェクトファイルの所有者がrootになってしまう #66

@ph2684

Description

@ph2684

お世話になっております。

マニュアルに従い以下のコマンドでWHEELを起動すると、標題の通り作成されたファイルの所有者が root になってしまいます。

 docker run -d -v ${HOME}:/root -v CONFIG_DIR/config:/usr/src/server/app/config -p 8089:8089 tmkawanabe/wheel:latest

このため、たとえば Jupyter notebookと連携するチュートリアル などで Permission denied のエラーが出ます。

検証環境は以下ですが、環境に依らずDocker であれば同じ事象が発生すると思われます。

  • Windows 11 Pro 24H2 内の WSL2 Ubuntu 24.04 LTS
  • Intel(R) Core(TM) Ultra 7
  • Docker version 28.0.1, build 068a01e

以下は、現在手元で使っている回避策です。
差し支えなければ次期バージョンへの反映を検討していただけると幸いです。

以下のようにDockerfileで実行ユーザを、たとえば 1000 に変更して docker build することが考えられます。(1000としたのはJupyter notebookのdockerイメージのユーザと合わせるためです)

--- a/Dockerfile
+++ b/Dockerfile
@@ -42,4 +42,7 @@ COPY --from=builder /usr/src/server/app/public /usr/src/server/app/public
 COPY entrypoint.sh /usr/src/server/
 RUN rm -fr server/app/config/* server/test/

+RUN chown -R 1000:1000 /usr/src
+
+USER 1000
 ENTRYPOINT ["./entrypoint.sh"]

ユーザを変更したことでdockerコンテナ内でのホーム領域 /root から /home/node/ に変わるため、マウント先も修正する必要があります。

docker run であれば

docker run -v ${HOME}:/home/node (以下略)

docker compose (compose.yml) であれば

  wheel:
   (中略)
    volumes:
-      - "${PWD}/:/root"
-      - "${HOME}/.wheel/:/root/.wheel"
+      - "${PWD}/:/home/node"
+      - "${HOME}/.wheel/:/home/node/.wheel"

です。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions