2016-10-13 2 views
1

Я совершенно новый для докеров, и я пытаюсь сделать (я думал) довольно простую вещь. Что касается названия, я хотел бы запустить скрипт impala из файла Docker. Вот мой Dockerfile выглядит следующим образом:Запуск скрипта sql impala из файла Docker

FROM cloudera/quickstart:latest 
COPY /home/dodo/script/ /home/cloudera/script 
WORKDIR /home/cloudera/script 
RUN service impala-state-store start \ 
    && service impala-catalog start \ 
    && service impala-server start \ 
    && impala-shell -f script.sql --quiet -i localhost 

Создание образа я храню имея эту ошибку относительно связи импала-оболочки:

Ошибка соединения: TTransportException, не удается подключиться к локальной машине: 21000

Я пытался запустить тот же скрипт с той же командой внутри контейнера, и он работает.

Есть ли у вас какие-либо идеи, как я могу решить эту проблему, в которой хост переходит на impala-shell?

+0

Возможно, вам стоит подождать немного, пока порт 21000 не прослушивает? – user2915097

+0

Кстати, вы должны заменить свой 'RUN' на' ENTRYPOINT' – user2915097

+0

@ user2915097 Я пробовал ждать порт, но он не работает – dodo

ответ

0

Кажется, вам нужно добавить несколько вещей

я создал следующий Dockerfile

FROM cloudera/quickstart:latest RUN mkdir /script COPY service.sh /script ENTRYPOINT ["/script/service.sh"]

с файлом, содержащим service.sh

#!/bin/bash service impala-state-store start \ && service impala-catalog start \ && service impala-server start \ && impala-shell -f script.sql --quiet -i localhost

тогда я строю его

docker build -t impala .

и я бегу он

docker run impala

это показывает

Started Impala State Store Server (statestored):[ OK ] Started Impala Catalog Server (catalogd) :[ OK ] Started Impala Server (impalad):[ OK ] Starting Impala Shell without Kerberos authentication Error: [Errno 2] No such file or directory: 'script.sql'

Так что все еще нуждается в некоторой работы, такие как обеспечение .sql файла. Вы видите, что ENTRYPOINT необходимо запустить команду, которая запускает контейнер `

+0

моя плохой я не писал свой полный Dockerfile, я сейчас редактировал вопрос, но моя проблема заключается не в выполнении файла. Я правильно копирую сценарий в контейнер. Я устанавливаю WORKDIR в каталог, содержащий скрипт, а затем запускаю команды. Проблема в большей степени связана с impala, возможно, мне не хватает некоторых сервисов. – dodo

Смежные вопросы