2017-02-03 83 views
0

我从docker安装postfix服务器,然后将其部署到openshift。在我的本地docker container postfix服务器上启动正常,并且能够发送电子邮件,但是在Openshift上失败。我Dockerfile的
部分:Openshift后缀服务器不启动

RUN DEBIAN_FRONTEND=noninteractive apt-get install -y postfix 
RUN sed -i 's/relayhost.*/relayhost = <my.mail.host>/g' /etc/postfix/main.cf 
RUN sed -i 's/myhostname.*/myhostname = <my.domain.name>/g' /etc/postfix/main.cf 
RUN sed -i 's/smtp  inet n  -  -  -  -  smtpd/2525  inet n  -  n  -  -  smtpd/g' /etc/postfix/master.cf 

然后在entrypoint.sh我重新开始使用服务器:

/etc/init.d/postfix restart 

能正常工作在我的地方,我得到测试电子邮件。但是在OS控制台上它不会启动。当我走进终端,并试图启动服务器那里我得到错误:

postfix: error: to submit mail, use the Postfix sendmail command 
postfix: fatal: the postfix command is reserved for the superuser 

有在 的/ var创建没有其他日志/日志/ maillog中

任何线索我应该在哪里看?

+0

你的Dockerfile的其余部分怎么样?你发布的内容并不能说明问题所在。 –

回答

0

当您在Docker上本地运行Docker镜像时,它将作为root运行。

这是一个安全问题,默认情况下禁止在OpenShift上使用。或者更具体一点 - 它取决于您的OpenShift群集配置,如果您可以运行root用户。

我不确定您是否可以在没有超级用户权限的情况下运行postfix,因此可能无法在OpenShift中运行它,而无需使您的容器成为特权级别。你可以试试这个配置:OpenShift Origin: Enable dockerhub images that require root