【问题标题】:Invalid bucket name from docker-compose up to EC2从 docker-compose 到 EC2 的存储桶名称无效
【发布时间】:2018-10-25 23:39:11
【问题描述】:

我在 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 负载均衡器。所以我确实按照this article 更改了默认的production.yml 以引入nginx 而不是Caddy。

【问题讨论】:

    标签: django cookiecutter-django


    【解决方案1】:

    你的环境文件名有错误吗?当正确的是“.env”https://docs.docker.com/compose/env-file/ 时,您在问题中写了两次“evn”。

    此外,此环境变量仅适用于 Docker-compose 文件。这意味着,如果您需要将此变量传递给特定容器,则需要使用environment: 部分将此变量传递给容器,如下所示:

    app:
      - environment:
        DJANGO_AWS_STORAGE_BUCKET_NAME=${DJANGO_AWS_STORAGE_BUCKET_NAME}
    

    此外,您可以通过使用 env_file: 为特定容器传递 .env 文件中的所有变量:https://docs.docker.com/compose/environment-variables/#the-env_file-configuration-option

    app:
      env_file:
        - .env
    

    如果您有正确配置的容器和环境变量,您可以通过连接到容器并检查 vars 是否通过来调试您的 vars。

    docker exec -ti CONTAINER_ID /bin/export
    

    另外,您可能需要在 django settings.py 文件中添加配置。例如:

    import os
    DJANGO_AWS_STORAGE_BUCKET_NAME=os.environ.get('DJANGO_AWS_STORAGE_BUCKET_NAME')
    

    【讨论】:

    • .evn 是一个错字。我仔细检查以确保我实际上在使用 .env。
    • @BradRhoads 我认为首先,您需要确保将您的变量传递给您的容器。请按照我上面的描述进行检查。
    • 这本质上是问题所在。 cookiecutter_django 的一些设置和文档让我感到困惑。
    猜你喜欢
    • 2021-08-24
    • 1970-01-01
    • 2021-05-20
    • 2019-04-27
    • 2019-09-21
    • 2018-05-05
    • 2018-09-07
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多