在数字海洋液滴中查找Docker数据量的位置

时间:2018-06-06 14:10:54

标签: postgresql docker docker-compose digital-ocean cookiecutter-django

我在django-cookiecutter内运行了一个Digital Ocean Droplet项目。

问题

当我第一次创建新的Droplet并运行up时,我的项目使用了一个数据库。

即使我没有更改.env设置,更新的图片也不会使用原始数据库或遵循我的.env设置,而是创建一个新的单独数据库(使用新名称和用户)

证据

我第一次跑up时一切运转良好。我有几个celery任务运行并创建了一些Django个对象。当我打开/admin页面时,我可以在Django admin。

中看到这些对象

现在在第一张图片之后:

  • 我做了更改
  • 我重建了图片:docker-compose -f production.yml build
  • 我部署了图片:docker-compose -f production.yml up

此时,日志将返回身份验证错误(即使POSTGRES中的.env设置未更改。

postgres_1      | 2018-06-03 20:45:19.645 UTC [110] FATAL:  password authentication failed for user "xxxxxx"
postgres_1      | 2018-06-03 20:45:19.645 UTC [110] DETAIL:  Password does not match for user "xxxxxx".
postgres_1      |   Connection matched pg_hba.conf line 95: "host all all all md5"

我通过以下步骤检查以下内容:

  • POSTGRES_USERPOSTGRES_PASSWORD未更改
  • docker-compose -f production.yml exec postgres psql -U <my_pg_user> - 也不会返回POSTGRES_USER
  • 中定义的.env
  • docker-compose -f production.yml exec postgres psql -U postgres - 确实有效并打开Postgres命令行
  • \list - 没有按我在.env
  • 中定义的那样显示我的数据库

现在,当我重新运行我的celery任务以查看这些任务是否会运行时,它们确实会成功。然后,我可以在使用\list返回的其中一个数据库中查看这些对象。但是,我的Django /admin中的这些对象不会显示。为了确认这不是一个缓存问题,我进入Django shell,我可以查询那些新创建的对象。

假设

看来我的docker项目将在初始build上创建一个数据库服务,然后再构建一个单独的数据库服务。

问题

如何追踪每项服务及其数据量的位置?

0 个答案:

没有答案