私は、素敵な 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を渡す方法については、今はアイデアがありません。