无法在docker和rancher上运行启动脚本

时间:2018-01-25 12:36:18

标签: docker wso2 wso2is rancher

我试图让raso2在Rancher上的docker上运行。我创建了以下dockerfile:

FROM        wso2/wso2base:latest
RUN apt-get update && \
    apt-get upgrade -y  && \
    apt-get install default-jdk -y && \
    apt-get clean 

ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/jre/
ENV PATH ${JAVA_HOME}/bin:${PATH}
ENV CARBON_HOME /opt/wso2is

它被上传到github。我有一个docker-compose.ym文件,其中包含以下内容:

version: '2'
services:
  wso2is:
    build: <github-url>/wsois
    stdin_open: true
    tty: true
    ports:
    - 9443:9443/tcp
    - 9763:9763/tcp
    labels:
      io.rancher.container.pull_image: always
    volumes:
     - /home/dockserver/stacks/inclouding/volume/wso2is:/opt/wso2is

使服务器正常工作的唯一剩余步骤是运行启动脚本。如果我运行它访问docker bash它完美地启动:

docker exec -it "676d5bc5cf18" bash
/opt/wso2is/bin/wso2server.sh start

我尝试使用CMD在dockerfile中启动它:

CMD /opt/wso2is/bin/wso2server.sh start

或在docker-compose中:

command:
- /opt/wso2is/bin/wso2server.sh
- start

在这两种情况下,泊坞窗停止并显示错误说明:

Need to restart service reconcile
Expected state running but got stopped

如何让它运行?我做错了什么?

1 个答案:

答案 0 :(得分:2)

在命令末尾使用start命令(./wso2server.sh start)时,wso2server.sh文件在后台启动服务器,它是wso2server.sh脚本执行的结束。您可以执行以下操作来解决此问题。

  1. 不要使用start命令。只需执行wso2server.sh。
  2. 将start命令与wso2server.sh文件一起使用,并按如下方式拖动wso2carbon.log。
  3.   

    tail -f /repository/logs/wso2carbon.log