2017-09-09 1 views
1

Juste nouveau pour Docker alors s'il vous plaît ours avec moi. J'essaie d'utiliser docker-composer avec un Alpine Dockerfile. Idéalement, je voudrais l'image file alpine et ai-il continuer à courirexécuter un script dans un conteneur Docker

FROM alpine:edge 

J'ai un script shell dans mon volume monté dans mon docker-compose.yml

version: '3' 

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

Référencé dans le volume monté /Users/asdf/customsolr/trunk/startsolr.sh J'ai un script dans lequel j'ai essayé toutes sortes d'approches pour fonctionner et rester en course. Fondamentalement, si je l'exécute localement sur ma propre machine en dehors de Docker, les fichiers sont dans son répertoire dans une mini-instance personnalisée. Lorsque j'essaie d'appeler le script via RUN ou CMD, le conteneur docker est déjà terminé ou il ne peut pas trouver le fichier startup.jar nécessaire.

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

Des idées de ce que je fais mal?

+0

Qu'est-ce que 'entrypoint' ou' cmd' pour l'image que vous construisez? – mkobit

+3

Publiez votre dockerfile et les journaux également lorsque vous exécutez le conteneur –

Répondre

0

L'image Alpine n'est pas livrée avec Java, donc à moins que vous ne l'ajoutiez à votre image dans Dockerfile, je dirais que le script se termine et que votre conteneur existe immédiatement.

Il serait utile que vous fournissiez votre Dockerfile, full docker-compose.yml et le journal du conteneur.