在docker容器中运行脚本

时间:2017-09-09 00:12:10

标签: docker docker-compose

刚刚登陆Docker,请耐心等待。我正在尝试使用docker-compose和Alpine Dockerfile。理想情况下,我会将高山图像旋转并让它继续运行

version: '3'

services:
 solr-service: 
  build: ./solr-service
  volumes:
    - /Users/asdf/customsolr/trunk:/asdf/customsolr/trunk 
  ports:
    - 8801:8801

我的docker-compose.yml

中的装载卷中有一个shell脚本
#!/bin/sh

export DEBUG_ARGS=''
export DEBUG_ARGS='-Xdebug -
Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8909'

java -Xms512M -Xmx1024M $DEBUG_ARGS -Dfile.encoding=UTF8 -server -Dsolr.solr.home=cores -Dsolr.useFilterForSort=false -Djetty.home=_container -Djetty.logs=_container/logs -jar _container/start.jar

在已安装的卷中引用/Users/asdf/customsolr/trunk/startsolr.sh我有一个脚本,我尝试了各种方法来运行并保持运行。基本上,如果我在Docker之外的我自己的机器上本地运行它,它会在一个迷你自定义jetty实例中旋转其目录中的文件。当我尝试通过RUN或CMD调用脚本时,docker容器已经完成,或者它无法找到所需的startup.jar。

.snippet-thumbnail .post-header {
    background: transparent;
}

我做错了什么想法?

1 个答案:

答案 0 :(得分:0)

Alpine映像没有安装java,所以除非你将它添加到Dockerfile中的映像,否则我会说脚本刚刚完成,你的容器会立即存在。

如果您提供Dockerfile,完整的docker-compose.yml并从容器中记录,将会很有帮助。