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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions