在Docker容器中运行脚本

对于Docker来说只是一个新东西,所以请耐心等待。 我正在尝试使用docker-compose和Alpine Dockerfile。 理想情况下,我会旋转阿尔卑斯山的形象,并继续运行

FROM alpine:edge 

我在我的docker-compose.yml中的装入卷中有一个shell脚本

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

在/Users/asdf/customsolr/trunk/startsolr.sh的挂载卷内引用我有一个脚本,我尝试了各种方法来运行和保持运行。 基本上,如果我在Docker之外的本地机器上运行这个程序,它将在一个小型自定义jetty实例中激活目录中的文件。 当我尝试通过RUN或CMD调用脚本时,docker容器已经完成,或者找不到所需的startup.jar。

 #!/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 

任何想法我做错了什么?

高山图像没有安装java,所以除非你把它添加到Dockerfile中的图像,我会说脚本刚刚完成,你的容器立即存在。

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