◾️create docker secret key(NAME):value(Secret)
- production settingファイルから固定key:valueはdocker secretファイルから参照
-> 本番環境の設定ファイルをgit push後、新規イメージファイル作成
def read_secret(secret_key):
file = opne('/run/secrets/' + secret_key)
secret = file.read()
secret = secret.rstrip().lstrip()
file.close()
return secret
....
....
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.1/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = read_secret('SECRET_KEY')
- 修正ファイルgit push
- Dockerfile修正して新規imageファイル作成(pinterest_gunicorn:4)
python manage.py collectstatic –noinput –settings=pragmatic.settings.prod
CMD ["bash", "-c", "python manage.py collectstatic --noinput --settings=pragmatic.settings.prod && python manage.py migrate --settings=pragmatic.settings.prod && gunicorn pragmatic.wsgi --env DJANGO_SETTINGS_MODULE=pragmatic.settings.prod --bind 0.0.0.0:8000"]
- stacks 作成してサービス起動
- 注意:network name注意(docker-compose.yml)
docker-compose.yml内では[nginx-django]のnetwork nameを使っているが、
実際にstacksをTTで作成した場合、[PT_nginx-djnago]のnetwork nameが作成される問題(stacks nameがprefix)があり、手動で[nginx-django]networkを作成してdeploy。