postgresql – 如何创建docker-compose版本2以使用卷拥有持久的postgres数据库?

postgresql – 如何创建docker-compose版本2以使用卷拥有持久的postgres数据库?,第1张

概述我知道使用较旧版本的docker-compose,我们可以创建另一个只包含数据卷的容器,并使用volumes_from链接它以使其成为“仅数据容器”.但是,我想测试使用新语法. version: '2'services: app: build: . links: - psql psql: image: pos 我知道使用较旧版本的docker-compose,我们可以创建另一个只包含数据卷的容器,并使用volumes_from链接它以使其成为“仅数据容器”.但是,我想测试使用新语法.
version: '2'services:    app:        build: .        links:            - psql    psql:        image: postgres        volumes_from:            - psqldata        ports:            - "5432:5432"    psqldata:        image: postgres        volumes:            - psqlvolumes:/var/lib/postgresql/data/volumes:    psqlvolumes:        driver: local

这是基于this post.

我有另一个脚本运行,等待这个postgres容器在其他容器运行之前启动,例如:

container:    build: .    volumes:        - ./scripts/wait-for-postgres.sh:/code/wait-for-postgres.sh    entrypoint: ./wait-for-postgres.sh "command"

脚本看起来像:

#!/bin/bashset -eexport PGPASSWORD=postgrescmd="$@"until psql -h "postgres" -U "postgres" -c '\l'; do  >&2 echo "Postgres is unavailable - sleePing"  sleep 1done>&2 echo "Postgres is up - executing command"exec $cmd

这是从码头网站上获取的.

这只会导致容器停滞而根本不会出现,我甚至无法使用我需要的表来初始化postgres容器.

运行检查脚本不需要版本2,因为postgres一旦启动就会开始监听,您可以使用depends_on来定义依赖关系.以下是我在postgres上设置postgres,volume和server(glassfish)的方法:
version: '2'services:  my-app:    image: my-glassfish-image    depends_on:      - my-db  my-db:    image: my-postgres-image    volumes:      - postgres-db-volume:/data/postgresvolumes:  postgres-db-volume:
总结

以上是内存溢出为你收集整理的postgresql – 如何创建docker-compose版本2以使用卷拥有持久的postgres数据库?全部内容,希望文章能够帮你解决postgresql – 如何创建docker-compose版本2以使用卷拥有持久的postgres数据库?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/1170103.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-02
下一篇2022-06-02

发表评论

登录后才能评论

评论列表(0条)

    保存