Tag: postgresql

GitLab无法连接数据库

我正在尝试在Gubter中为Kubernetes使用单独的容器,用于GitLab,Redis和PostgreSQL。 我按照PostgreSQL,Redis和GitLab的顺序启动这三个容器。 前两个工作正常,但是当我尝试启动GitLab时,它以某种方式没有find数据库configuration。 [root@cent-gluster-workstation ~]# kubectl logs gitlab-3743104516-plk3x -p Initializing logdir… Initializing datadir… Installing configuration templates… Configuring gitlab… Configuring gitlab::database ERROR: Please configure the database connection. Refer http://git.io/wkYhyA for more information. Cannot continue without a database. Aborting… 我确认我能够从GitLab窗格内telnet到5432端口上的PostgreSQL窗格。 root@gitlab-1182173148-t47fj:/home/git/gitlab# telnet postgresql 5432 Trying 10.42.154.36… Connected to postgresql.default.svc.cluster.local. Escape character is '^]'. GitLab和PostgreSQL的部署和服务configuration: [root@cent-gluster-workstation ~]# cat […]

GitLab用户界面不开放

我在Kubernetes中运行单独的GitLab,Redis和PostgreSQL容器,使用GlusterFS进行持久化。 所有的Kubernetes节点都有RancherOS。 所有节点都有1个核心和4.5 GB的RAM。 所有节点上的Docker版本是1.12.6以确保与Kubernetes的兼容性。 GitLab服务: apiVersion: v1 kind: Service metadata: creationTimestamp: null labels: io.kompose.service: gitlab name: gitlab spec: ports: – name: "443" port: 443 targetPort: 443 – name: "80" port: 80 targetPort: 80 – name: "10022" port: 10022 targetPort: 22 selector: io.kompose.service: gitlab status: loadBalancer: {} 当我在Kubernetes中启动GitLab容器时, 这里是日志。 我可以telnet到80端口上的GitLab窗口正在运行的主机 ,但不知何故,GitLab页面没有打开。 当我点击公共URL( http://35.xxx.yyy.zz/ )时,出现以下错误: Network […]

可靠的dockerpostgres卷

我正在做一些postgres部署docker,aws和a terraform 事情进展得相当顺利,我开始terraform的实例,与docker使用ansible提供的实例,启动我的postgres容器与ansible也附加一个ebs卷到我的实例,我打算用作主要的数据存储。 但我很困惑如何将音量附加到docker(而不是实例,因为我能够做到这一点使用terraform) 我想可能使用ansible或修改dockerfile,但似乎是答案的“ 音量 ”的文档是不是很清楚。 所以如果我有这样一个可靠的剧本: name: Start postgis docker_container: name: postgis image: "{{ ecr_url }}" network_mode: bridge exposed_ports: 5432 published_ports: 5432:5432 state: started 我将如何指定用于Postgres数据存储的ebs卷? resource "aws_volume_attachment" "ebs-volume-postgis-attach" { device_name = "/dev/xvdh" volume_id = "${aws_ebs_volume.ebs-volume-postgis.id}" instance_id = "${aws_instance.postgis.id}" } 这是用来附加ebs卷的代码,以防某人感兴趣 请问任何你需要的信息,所有的帮助是深深的折磨

使用IP连接到docker集装箱

我正在运行下一个命令: $ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS default * virtualbox Running tcp://192.168.99.100:2376 v17.06.2-ce $ docker-machine ip default 192.168.99.100 我有一些docker集装箱。 一旦运行django ,另一个postgres和第三个弹性search。 当我运行我的django容器时: # python manage.py runserver 0:8000 当我使用该网站时,它正在工作: localhost:8000/ 但是,当我使用时不可用: 192.168.99.100:8000 : 192.168.99.100:8000那里,我有浏览器消息: 此网站无法联系到 拒绝连接192.168.99.100。 尝试:检查连接 postgres和elasticseach容器也一样。 为什么我的docker容器没有应用default docker-machine ip ?

来自docker的默认postgresql.conf文件

我怎么能从容器到我的主机postgresql.conf? 或者我在哪里可以看到默认的? 一个同事给了我他的configuration文件,以比较它与我自己看到一些我需要做的改变。 容器上的文件path是: postgres=# show config_file; config_file —————————————— /var/lib/postgresql/data/postgresql.conf (1 row) 但我不知道如何从容器中的文件到我的主机

在Docker容器中切换数据库转储的方法

情况 :我正在进行一个大型的启动web项目,这个项目经常投入生产,所以所有的开发都很快。 我们有几个环境 – 开发(本地),质量保证,阶段和生产不同的数据在数据库当然(我们使用postgres)。 我的日常工作是当我开发一些新的function时,一些质量保证人员可以在其中一个环境中发现一个严重的错误,所以我必须修复它,或者至less看看有什么不对。 问题 :从本地上下文切换到生产/ qa / stage,我通常在本地从这些环境中转储数据库,然后进行debugging。 问题是,起初,转储非常繁重,有时需要30分钟才能下载和应用,其次是当我将其转储到本地数据库时,我正在丢失本地的开发环境。 希望 :能够在本地快速切换上下文 示例 :让我们说,我们有Web服务器的docker容器,它链接到像这个示例docker-compose.yml文件中的postgres容器 version: '3' services: pg: image: "mdillon/postgis" hostname: pghost ports: – "5433:5432" volumes: – "~/pgdata:/var/lib/postgresql/data" … webserver: image: "some_app_image" links: – pg:postgres … 假设这个networking服务器真的很重,所以有多个运行的容器在内存使用和可读性方面将是一个大问题。 问题 :是否有任何优雅(或不)的方式在不同的数据库数据集之间快速切换? 也许有不同的pgdata文件夹,或者以某种方式链接几个postgres容器(虽然我不知道这是可能的)

Docker – 扩展父进程的入口

我有一个基于官方postgres图像的自定义图像,我想扩展父图像的入口点,以便它会创build新的用户和数据库,如果它们不存在,每当一个容器启动。 可能吗? 就像我的图像将执行从标准入口点加上我自己的shell脚本的所有命令。 我知道把我自己的脚本放到/docker-entrypoint-initdb.d目录下,但似乎只有在第一次创build卷时才会执行。

Docker – 检查postgres是否准备就绪

我有一个Kong API网关容器和一个postgres容器,我需要在运行迁移之前检查postgres是否已经启动并准备好了Kong容器。 我正在考虑使用RUN yum install postgresql -y && yum clean all在我的Dockerfile中RUN yum install postgresql -y && yum clean all清理并使用psql或pg_isready来实现此pg_isready ,将postgres客户端实用程序安装到基于官方Kong映像的自定义映像中。 我创build了一个名为polling的postgres用户,其中使用了一个空密码,专门用于通过这两个实用程序来检查服务器的状态。 他们都没有工作。 我试图从自定义的Kong镜像执行这些命令: psql 。 命令psql -h postgres -U polling -w -c '\l'失败,出现错误psql: fe_sendauth: no password supplied 。 但用户没有密码。 我究竟做错了什么? 这里描述了使用psql检查服务器是否准备就绪的完整shell脚本。 pg_isready 。 我不知道如何将这个实用程序分开安装到基于官方Kong映像的自定义映像中,该映像基于centos:7映像, postgresql软件包不包含pg_isready 。 只有这些实用程序已安装,可以在/usr/bin : pg_config , pg_dump , pg_dumpall , pg_restore […]

docker工人已经分配的端口

我有三个docker容器,都需要访问postgres在端口5432.独立运行我可以通过-p 5432:5432但我不能一次运行两个或更多,因为他们冲突。 我希望用docker撰写这个问题,但是我需要指导如何在yml中做端口映射。 这是我的,这是不工作的: version: '2' services: foo: image: mynamespace/foo ports: – "5432:5432" bar: image: mynamespace/bar ports: – "5432:5432" baz: image: mynamespace/baz ports: – "5432:5432"

在Docker中安装pgsql卷

我有一个基于centos:latest的自定义Dockerfile centos:latest安装我需要运行我使用的Web框架的软件。 我想扩展这个Dockerfile,这样我就可以添加PostgreSQL了,我想把pgsql的默认数据位置从/var/lib/pgsql改为/var/www/data/pgsql ,这是一个挂载文件系统的卷。 我不确定是否可以在Dockerfile中执行此操作,或者是否需要在容器中运行某些脚本。 任何帮助,将不胜感激。