gpt4 book ai didi

postgresql - 如何在 docker centos 6 镜像上启动 postgres 9.6 服务

转载 作者:行者123 更新时间:2023-11-29 13:18:41 24 4
gpt4 key购买 nike

我是 docker-compose 的新手,我正在尝试在 centos 6 之上使用 postgres 9.6 构建一个容器,并使用 docker compose up 运行它。然后我希望能够通过一些数据库管理工具连接到数据库。

如果我运行:

docker-compose up
  • 图像构建正确,但我无法连接到数据库。

  • 如果我删除 tty:truestdin_open: true 图像构建但随后它以退出代码 0 退出

  • 如果我运行 docker-run -it -p 5432:5432 --entypoint/bin/bash [image_name] 然后手动运行命令 service postgresql-9.6 start 一切正常(直到我退出容器)。

有什么建议吗?

这是我的 docker-compose 文件:

networks{}
version: '2'
services:
postgres:
build:
context: ./src/test/docker/postgres
ports:
- "5432:5432"
stdin_open: true
tty: true

还有我的 docker 文件:

FROM centos:6

RUN yum -y install
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-6-x86_64/pgdg-
centos96-9.6-3.noarch.rpm

RUN yum -y install postgresql96 postgresql96-server postgresql96-libs
postgresql96-contrib postgresql96-devel

# Initialize the database (not starting it yet)
RUN service postgresql-9.6 initdb

RUN su postgres

RUN echo "listen_addresses = '*'" >> /var/lib/pgsql/9.6/data/postgresql.conf
RUN echo "PORT = 5432" >> /var/lib/pgsql/9.6/data/postgresql.conf
RUN echo "local all all trust" > /var/lib/pgsql/9.6/data/pg_hba.conf
RUN echo "host all all 127.0.0.1/32 ident" >> /var/lib/pgsql/9.6/data/pg_hba.conf
RUN echo "host all all ::1/128 ident" >> /var/lib/pgsql/9.6/data/pg_hba.conf
RUN echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/9.6/data/pg_hba.conf

RUN exit

# Expose the PostgreSQL port
EXPOSE 5432

ENTRYPOINT service postgresql-9.6 start

最佳答案

docker 文件中的 ENTRYPOINT 允许您将容器配置为可执行文件。这是一种将您需要运行的东西与容器中的所有依赖项一起包装并运行容器 = 运行脚本/应用程序等的方法。请参阅文档详细信息 here

现在是你的切入点

ENTRYPOINT service postgresql-9.6 start

只运行服务启动和退出!所以你的容器也会退出。如果你想像可执行文件一样配置它,你需要运行 postgres 命令作为你的 ENTRYPOINT 命令

  ENTRYPOINT ["sudo","-u","postgres","/usr/pgsql-9.6/bin/postgres","-D","‌​/var/lib/pgsql/9.6/d‌​ata","-p","5432"]

这将在容器启动时将 postgres 作为您的 ENTRYPOINT 命令运行,并且您应该能够连接到它。

关于postgresql - 如何在 docker centos 6 镜像上启动 postgres 9.6 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45432697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com