返回

python-在弹性Beanstalk上的Docker内部部署时间命令

发布时间:2022-05-18 04:38:17 263
# node.js

我在Docker中运行了一个Django服务,并将其部署到AWS Elastic Beanstalk。

我想在部署时运行数据库迁移

如果我作为“Python项目”部署到EB,我可以在我的.ebextensions:

$ cat .ebextensions/01run.config 
container_commands:
    01migrate:
        command: "python manage.py migrate --noinput"
        leader_only: true

然而container_commands用于EC2实例,并且在Docker容器内我有我的代码等等。

我已经看过的东西

  • 我不能把它加到我的Dockerfile,因为应用迁移是关于在连接的RDS实例(由环境提供)上操作的,而不是真正的“构建Docker映像的一部分”

  • 我似乎没有什么有用的东西可以补充Dockerrun.aws.json

到目前为止,我已经确定了一些黑客选项

  • 我也许可以在我的内部识别 Docker 映像名称container_commands,然后做docker run -ti $container-name python manage.py migrate等等,但不知道如何并且感觉非常hacky

    我可以手动运行迁移

    我可以替换CMD gunicorn $etc为CMD $script, where$script应用迁移,然后启动 gunicorn。

    这是迄今为止我发现的最不可怕的事情,也是我将要做的权宜之计。

    这意味着“每次启动实例时都尝试应用迁移”,这并不让我感到舒适和快乐。

    非常欢迎您提出想法!

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(2)
按点赞数排序
用户头像