3

私は、素敵な docker-compose 統合を含む cookiecutter-django プロジェクト テンプレートを使用しています。ただし、 docker-compose を介してファイルを作成する manage.py コマンドを実行すると、次のようになります。

sudo docker-compose -f dev.yml run django python manage.py dumpdata --output ./myapp/fixtures/data.json

ファイルはによって所有されroot:rootているため、最初はホストファイルシステムへの書き込み権限がありません。私はまだdocker-composeについて学んでおりchown、作成されたファイルをローカルユーザーに戻す最も適切な方法を見つけるのに苦労しています。

user:私はdev.ymlの私のdjangoサービスでフラグを設定しようとしました..

  django:
    user: $USER

しかし、これはかかりませんでした。

使用についても読みました

django:
  user: ${UID}

しかし、これも警告で失敗します

WARNING: The UID variable is not set. Defaulting to a blank string.

echo $UID正しい値を返すにもかかわらず。そのため、何らかの理由で環境変数が適切に渡されていませんが、それをデバッグする方法はわかりません。おそらく関連:https://github.com/docker/compose/issues/2613

編集:さらに更新。

実行するdocker-compose -f dev.yml run django envと、$UID が存在しないことが示されます。割り当ててみましentrypoint.shたが、そのファイルはルートによって実行されるため、実行時に $UID は 0 になります。ユーザーIDを渡す方法については、今はアイデアがありません。

4

0 に答える 0