我想在django docker容器中用fabric创建超级用户。
为了在django中创建超级用户,我需要在django的交互模式下运行这个程序。
./manage.py createsuperuser
而且因为我想让它在一个织物脚本中运行,所以我发现this命令可以避免输入密码
echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | ./manage.py shell
Then I put this together with "docker exec"在我的django容器中运行它
docker exec container_django echo "from django.contrib.auth.models import User; User.objects.create_superuser('admin', 'admin@example.com', 'pass')" | ./manage.py shell
问题出在linux管道上,管道(|)左边的所有内容(包括docker exec)到右边(./manage.py shell)。
这不仅是困难的部分,考虑到要把所有这些垃圾放入一个织物运行,这意味着他们需要两端的报价。这将使整个事情变得非常紧迫。
fabric run:
run("docker exec container_django {command to create django super user}")
我还在苦苦思索如何至少让垃圾在织物运行中发挥作用,但我不知道该如何做。