У меня возникли некоторые трудности с контейнером Docker, который я развернул. Я адаптировал некоторый код, который импортирует метрики для EMC Isilon в базу данных InfluxDB для использования в Grafana. Мне удалось заставить код работать в контейнере, но сразу после первоначального выполнения контейнер завершает работу с кодом 0. Я на лету изучаю Docker, поэтому вполне возможно, что я упускаю что-то очевидное (пожалуйста, будьте осторожны, абсолютно прислушиваясь к советам, но не разрывайте меня на части, если что-то ужасно очевидно). Я знаю, что ссылки являются табу, но я собираюсь дать ссылку на оригинальную статью и используемое репозиторий git (дайте мне знать, если есть лучший способ справиться с этим).
Статья:
https://community.emc.com/blogs/keith/2017/01/26/isilon-data-insights-connector--do-it-yourself-isilon-monitoring
Git Repo:
https://github.com/Isilon/isilon_data_insights_connector
Я попытался установить stdin_open и tty в настроенном сервисе docker-compose. К сожалению, это единственное, что я нашел в сети, что могло поддерживать работу контейнера после выполнения.
[Докер-Compose]
isilonscan:
stdin_open: true
tty: true
build:
args:
- http_proxy=http://*****:3128
context: ./Isilonscan/isilonscan-context
dockerfile: Dockerfile
volumes:
- ./Isilonscan/isilonscan-data:/opt/isilon_data_insights_connector
- ./Isilonscan/isi_data_insights_d.cfg:/opt/isilon_data_insights_connector/isi_data_insights_d.cfg
depends_on:
- influxdb
command: ["python", "/opt/isilon_data_insights_connector/isi_data_insights_d.py", "start", "--config=/opt/isilon_data_insights_connector/isi_data_insights_d.cfg"]
[Dockerfile]
FROM python:2
WORKDIR /usr/src/app
COPY isilon-exporter /opt/isilon_data_insights_connector
RUN apt-get install git && \
cd /opt && \
git clone https://github.com/Isilon/isilon_data_insights_connector.git && \
cd ./isilon_data_insights_connector && \
#pip install --upgrade pip && \
#pip install --upgrade setuptools && \
pip install -r requirements.txt && \
apt-get remove git -y && \
apt-get clean all -y
ENTRYPOINT ["python", "/opt/isilon_data_insights_connector/isi_data_insights_d.py", "start", "--config=/opt/isilon_data_insights_connector/isi_data_insights_d.cfg"]
Ожидаемое:
Код должен запускаться и заканчиваться новой строкой. Каждые 30 секунд (или настроенный интервал) контейнер должен опрашивать Isilon для метрик и помещать их в InfluxDB (другой контейнер).
Фактический:
При запуске docker-compose он записывает вывод, что он выполнил каждый шаг должным образом, а затем доходит до конца и завершается с кодом 0. Проверка ps docker показывает, что он фактически больше не выполняется.