簡體   English   中英

我正在嘗試從dockerfile安裝我的ejabberd,映像正在成功構建,但是當我按下run命令時,容器立即退出

[英]I am trying to install my ejabberd from dockerfile , image is building succesfully but when i hit the run command container exits immediately

運行容器后,它將立即退出。 我應該如何保持此容器和ejabberd的運行? 我應該在dockerfile中進行哪些更改?
任何幫助表示贊賞。

這是我的dockerfile:

FROM ubuntu:16.04

RUN set -x && \
    apt-get update && \
    apt-get install -y \
        make \
        automake \
        gcc \
        g++\
        libexpat1 \
        libexpat1-dev \
        libyaml-0-2 \
        libyaml-dev \
        erlang \
        openssl \
        zlib1g \
        zlib1g-dev \
        libpam0g \
        libtext-iconv-perl \
        libssl-dev\
        git \
        postgresql postgresql-contrib     

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10 && \
    echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" |  tee /etc/apt/sources.list.d/mongodb-org-3.0.list \
    apt-get install mongodb-org

RUN mkdir -p /root/.ssh

ADD /.ssh/id_rsa /root/.ssh/id_rsa

RUN chmod 600 /root/.ssh/id_rsa


RUN touch /root/.ssh/known_hosts

RUN ssh-keyscan bitbucket.org >> /root/.ssh/known_hosts

RUN git clone git@bitbucket.org:sample.git

RUN cp -a /sample/. /opt/ejabberd/

RUN  cd /opt/ejabberd && ./autogen.sh && ./configure --enable-user=root --enable-mysql && make && make install

EXPOSE 5280

RUN cd /opt/ejabberd/

RUN chmod +x /opt/ejabberd/run.sh

ENTRYPOINT ["/opt/ejabberd/run.sh"]

這是run.sh

#!/bin/bash
set -e

cd /opt/ejabberd

exec sbin/ejabberdctl start "$@"

我的構建命令是:

sudo docker build --no-cache=true -t sample:ejabb .

我的運行命令是:

sudo docker run -d -p 5280:5280 -p 5269:5269 -p 5222:5222 -p 4560:4560 sample:ejabb

謝謝。

解決了。 https://stackoverflow.com/users/147356/larsks?tab=profile所建議,ejabberd進程已進入后台,因此該容器正在關閉。

因此“ sbin / ejabberdctl前景”解決了問題。

謝謝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM