首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么码头工人在出发后立即组成出口?

问为什么码头工人在出发后立即组成出口?
EN

Stack Overflow用户
提问于 2017-06-02 09:05:55
回答 1查看 745关注 0票数 2

我正在尝试将https://hub.docker.com/r/pivotaldata/gpdb-base/配置为在Ubuntu16.04中使用GreenPlum db。这是我的船坞-复合。Here:

代码语言:javascript
复制
version: '2'
services:
    greenplum:
        image: "pivotaldata/gpdb-base"
        ports:
            - "5432:5432"
        volumes:
            - gp_data:/tmp/gp

volumes:
    gp_data:

问题是,当我使用sudo docker-compose up运行它时,GrrenPlum db在启动后是不间断的。看起来是这样的:

代码语言:javascript
复制
greenplum_1  | 20170602:09:01:01:000050 gpstart:e1ae49da386c:gpadmin-[INFO]:-Starting Master instance 72ba20be3774 directory /gpdata/master/gpseg-1 
greenplum_1  | 20170602:09:01:02:000050 gpstart:e1ae49da386c:gpadmin-[INFO]:-Command pg_ctl reports Master 72ba20be3774 instance active
greenplum_1  | 20170602:09:01:02:000050 gpstart:e1ae49da386c:gpadmin-[INFO]:-No standby master configured.  skipping...
greenplum_1  | 20170602:09:01:02:000050 gpstart:e1ae49da386c:gpadmin-[INFO]:-Database successfully started
greenplum_1  | ALTER ROLE
dockergreenplumn_greenplum_1 exited with code 0  <<----- Here

实际上,当我用sudo docker run pivotaldata/gpdb-base开头的时候,就没问题了。

码头工怎么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-02 12:42:52

首先,要谨慎地运行这个映像:该映像看起来维护得很糟糕,码头枢纽信息表示它既不是“官方的”,也不是“支持的”;

2017-01-09:工具匠回顾了这个图像;它不是我们创建的。我们没有保证这是最新的,还是可行的。如果您是所有者,并有兴趣在此图像上与我们合作,请发送电子邮件给pa-toolsmiths@枢轴。

当使用来自Docker的图像时,建议要么使用官方映像,要么在不可用的情况下,更喜欢自动化构建(在这种情况下,可以验证映像的源代码,以查看用于构建映像的代码)。

我认为这个映像是由这个GitHub存储库构建的,这意味着它已经有一年多没有更新了,并且使用了一个过时的(CentOS 6.7)基映像严重漏洞的数量

回到你的问题;

我试着用docker-compose和docker run启动映像,结果都是一样的。

查看该映像时,它被设计为以交互方式运行,或用作基本映像(并覆盖命令)。

我检查了图像,找出容器的命令是什么;

代码语言:javascript
复制
docker inspect --format='{{json .Config.Cmd}}'  pivotaldata/gpdb-base
["/bin/sh","-c","echo \"127.0.0.1 $(cat ~/orig_hostname)\" >> /etc/hosts         && service sshd start         && su gpadmin -l -c \"/usr/local/bin/run.sh\"         && /bin/bash"]

因此,这就是启动容器时执行的内容;

代码语言:javascript
复制
echo "127.0.0.1 $(cat ~/orig_hostname)" >> /etc/hosts \
&& service sshd start \
&& su gpadmin -l -c "/usr/local/bin/run.sh" \
&& /bin/bash"

基于以上所述,容器中没有“前台”进程,因此当/usr/local/bin/run.sh完成时,将启动一个bash外壳。一个bash外壳关闭一个附加的tty,立即退出,此时容器退出。

运行此映像

(再次;要小心运行此图像)

要么以交互方式运行映像,将其传递给stdin和tty (-i -t,或者-it作为速记);

代码语言:javascript
复制
docker run -it pivotaldata/gpdb-base

或可以运行它“分离”,只要tty也被传递(添加-d和-t标志,或-dt作为速记);这样做,使容器在后台运行;

代码语言:javascript
复制
docker run -dit pivotaldata/gpdb-base

要在docker-compose中执行同样的操作,请向服务中添加一个tty;

代码语言:javascript
复制
tty: true

您的撰写文件将像这样;

代码语言:javascript
复制
version: '2'
services:
    greenplum:
        image: "pivotaldata/gpdb-base"
        ports:
            - "5432:5432"
        tty: true
        volumes:
            - gp_data:/tmp/gp

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

https://stackoverflow.com/questions/44324940

复制
相关文章

相似问题

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