我在 EC2 上创建了一个 docker 机器。
然后我创建了一个新的cookiecutter-django应用程序,并让它保持原样。它设置为使用 .env 作为环境变量。(Cookiecutter-django 包含用于访问环境变量的django-environ 。)
docker-compose -f production.yml build
工作正常。
docker-compose -f production.yml up
给出这个错误:
django_1 | botocore.exceptions.ParamValidationError: Parameter validation failed:
django_1 | Invalid bucket name "": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
研究这个错误,建议设置各种环境变量。所以我已经在 .env 中尝试了所有这些(我确实创建了一个名为 pulsemanager 的 s3 存储桶):
DJANGO_AWS_STORAGE_BUCKET_NAME=pulsemanager
AWS_S3_BUCKET_NAME_STATIC=pulsemanager
AWS_STORAGE_BUCKET_NAME=pulsemanager
无论我尝试什么,我都会遇到错误。
编辑:这不完全是普通的香草。默认情况下,cookiecutter-django 使用 Caddy http 服务器而不是 docker 中的 nginx。这包括 SSL,并且不适用于带有 AWS 证书管理器 SSL 的 AWS 负载均衡器。所以我确实更改了默认的 production.yml 以引入 nginx 而不是 Caddy,按照这篇文章。