2015-12-29 4 views
1

Я довольно новичок в контейнере докера. Я пытаюсь создать изображение, в котором работает файл jar. Я хочу передать выходной файл на хост для дальнейшей обработки, но контейнер выйдет, как только он завершит команду. 1 - что является лучшим методом для решения этой проблемы? 2- есть ли способ передать имя файла динамически, а не жесткое кодирование в файле докеров. вот мой Dockerfile:копировать файл из контейнера в хост до того, как контейнер умирает

FROM mybase:latest 
VOLUME /root/:/var/myVol/ 
EXPOSE 8080 
ADD mydir/test.jar /tmp/test.jar 
CMD bash -c 'java -jar /tmp/test.jar > /var/myVol/output.json' 

ответ

2

Вы можете просто подключить выходной файл в качестве тома с помощью опции -v. Ваша программа будет напрямую писать в выходной файл на хосте без необходимости копировать что-либо в любом месте

+0

Это сработало! Благодарю. –

+0

Есть ли способ, которым мой файл jar читает файл непосредственно с хоста? Какие изменения необходимы в моем файле Docker? –

+0

То же самое, что и монтировать в качестве тома с помощью -v 'pwd'/yourfile.jar: /var/app/yourfile.jar – Vlad