首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新服务时Postgres AWS EBS卷不持久化

更新服务时Postgres AWS EBS卷不持久化
EN

Stack Overflow用户
提问于 2018-06-21 20:54:00
回答 1查看 212关注 0票数 0

我在AWS堆栈的标准Docker上部署了一个服务(使用这个模板)。我使用docker stack deploy -c docker-compose.yml pos部署这个组合文件:

代码语言:javascript
复制
version: "3.2"
services:
  postgres_vanilla:
    image: postgres
    volumes:
      - db-data:/var/lib/postgresql
volumes:
  db-data:
    driver: "cloudstor:aws"
    driver_opts:
      size: "6"
      ebstype: "gp2"
      backing: "relocatable"

然后,我在db中更改了一些数据,并强制使用docker service update --force pos_postgres_vanilla更新服务。

问题是,我更改的数据在更新后不会持久。我注意到postgres initdb脚本每次更新时都会运行,所以我假设它是相关的。

我做错什么了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-24 21:12:24

问题是cloudstor:aws在它下面创建了一个带有lost+found的卷,所以当postgres启动时,它会发现数据目录不是空的,并抱怨它。为了解决这个问题,我更改了要挂载在/var/lib/postgresql数据目录之上的一个目录,但这导致postgres找不到PGVERSION文件,这反过来又导致它在容器每次启动(https://github.com/docker-library/postgres/blob/master/11/docker-entrypoint.sh#L57)时运行initdb。

因此,为了解决这个问题,我没有将要挂载的卷更改为数据目录之上的一个目录,而是通过重写环境变量PGDATA (类似于/var/lib/postgresql/data/db/),将数据目录更改为比卷挂载低一级。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50977278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档