2017-09-09 4 views
1

Docker에 새로 추가되었으므로 나와 함께하시기 바랍니다. Alpine Dockerfile으로 도커 작성을 사용하려고합니다. 이상적으로는 최대 고산 이미지를 회전 것 그리고 내가 탑재 된 볼륨 내에서 참조 내 고정 표시기 - compose.yml도커 컨테이너에서 스크립트를 실행하는 경우

version: '3' 

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

내 탑재 된 볼륨에서 쉘 스크립트가

FROM alpine:edge 

를 계속 실행할 수있다 /Users/asdf/customsolr/trunk/startsolr.sh에서 실행하고 실행 상태를 유지하는 데 필요한 모든 방법을 시도한 스크립트가 있습니다. 기본적으로 Docker 외부의 내 컴퓨터에서 로컬로 실행하면 미니 사용자 정의 부두 인스턴스에서 해당 파일을 실행합니다. RUN 또는 CMD를 통해 스크립트를 호출하려고하면 도커 컨테이너가 이미 완료되었거나 필요한 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 

내가 잘못하고있는 것에 대한 아이디어가 있습니까?

+0

건물에있는 이미지의 '진입 점'또는 'cmd'는 무엇입니까? – mkobit

+3

도커 파일과 컨테이너를 실행할 때 로그를 게시하십시오. –

답변

0

알파인 이미지는 자바가 설치되어 있지 않으므로 이미지를 Dockerfile 내부의 이미지에 추가하지 않으면 스크립트가 완료되고 컨테이너가 즉시 존재한다고 말할 수 있습니다.

Dockerfile, 전체 docker-compose.yml 및 log from container를 제공하면 도움이됩니다.

관련 문제