Docker Secret Usage

◾️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。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です