python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
从Schedule_bot的Volume拷贝到本地,再从本地拷到Container里
docker cp [src] [des]
docker cp mediafiles/ djangodocker_bot_1:/home/app/web/botfiles/
# 我写错了,拷到web里了,结果权限就乱了....现在那个拷贝的就没法删除掉了(因为已经切换到appuser用户了)
docker cp djangodocker_bot_1:/home/app/web/botfiles ~/botbackup/
# from:
docker exec -t djangodocker_db_1 pg_dumpall -c -U postgres > dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql
# to:
cat dump_`date +%d-%m-%Y"_"%H_%M_%S`.sql | docker exec -i django-docker_db_1 psql -U postgres <
docker-compose exec web python manage.py startapp upload
# 这一步为啥会在本地app文件夹里新建一个app啊
# 而且是root权限的...这不合适吧,VS Code都没法编辑了
# 推荐使用虚拟环境来新建,当然不用应该也行
(env) python manage.py startapp upload
# setting.py 临时注释掉用于生成新app
# ALLOWED_HOSTS = os.environ.get("DJANGO_ALLOWED_HOSTS").split(" ")
- 增加redis部分
-
Docker部署参考这个博客
启动与停止,可用VS Code(包括查看容器内内容,容器内执行命令)
# 一会儿再补
docker-compose -f docker-compose.pre.yml up -d --build
# 因为变动了数据库
docker-compose -f docker-compose.prod.yml exec web python manage.py migrate --noinput
docker-compose -f docker-compose.prod.yml exec web python manage.py makemigrations
# 由于引入了mdeditor,需要重新收集静态资源
docker-compose -f docker-compose.prod.yml exec web python manage.py collectstatic --no-input --clear
docker-compose up -d --build
docker-compose down
# 可选命令
# entrypoint.sh里其实应该有migrate了
docker-compose exec web python manage.py migrate --noinput
# 在?看看数据库。其实通过docker desktop里的cli访问更方便一点
docker-compose exec db psql --username=postgres --dbname=django_db_dev
# 这个应该是跟nginx配合的,因为这个命令是把静态文件收集到一个固定的地方方便管理
# 顺带一提,搜索的关键词就是static
# 跟STATIC_URL没有关联,后者是绑定静态文件的访问路径/staticfiles/admin.css
docker-compose exec web python manage.py collectstatic --no-input --clear
# 看看volume
docker volume inspect django-docker_postgres_data
docker-compose -f docker-compose.prod.yml up -d --build
docker-compose -f docker-compose.prod.yml exec web python manage.py migrate --noinput
docker-compose -f docker-compose.prod.yml exec web python manage.py collectstatic --no-input --clear
docker-compose -f docker-compose.prod.yml exec web python manage.py createsuperuser
docker-compose -f docker-compose.prod.yml exec db psql --username=postgres
# Bring down the development containers (and the associated volumes with the -v flag)
docker-compose -f docker-compose.prod.yml down
# -v 会把volume去掉的,,,