在docker容器中运行脚本

在docker容器中运行脚本,docker,docker-compose,Docker,Docker Compose,对Docker来说只是个新手,所以请容忍我。我正在尝试将docker compose与Alpine Dockerfile结合使用。理想情况下,我会旋转阿尔卑斯山的形象,并让它继续运行 FROM alpine:edge 我在docker-compose.yml中装入的卷中有一个shell脚本 version: '3' services: solr-service: build: ./solr-service volumes: - /Users/asdf/customsolr

对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

知道我做错了什么吗?

Alpine image没有随java一起安装,因此除非您将其添加到Dockerfile中的映像中,否则我会说脚本刚刚完成,您的容器立即存在


如果您提供Dockerfile、full docker-compose.yml和log from container,这将非常有帮助。

Alpine image没有随java一起安装,因此除非您将其添加到Dockerfile内的映像中,否则我会说脚本刚刚完成,您的容器立即存在


如果您提供您的Dockerfile,完整docker-compose.yml并从容器中记录。

对于您正在构建的映像,什么是
入口点
cmd
呢?在运行容器时也发布docker文件和日志对于您正在构建的映像,什么是
入口点
cmd
呢?在运行容器时也发布docker文件和日志容器