我在创建 Docker 容器时遇到了一些困难。我修改了一些代码,将 EMC Isilon 的指标导入到 InfluxDB 数据库中,以便在 Grafana 中使用。我设法让代码在容器中运行,但在初始执行后,容器立即以代码 0 退出。我正在动态学习 Docker,所以很可能我遗漏了一些明显的东西(请温柔,绝对听取建议,但如果事情非常明显,请不要把我拆散)。我知道链接是禁忌,但我将链接到原始文章和使用的 git repo(让我知道是否有更好的方法来处理它)。
Git 回购: https ://github.com/Isilon/isilon_data_insights_connector
我已经尝试在我配置的 docker-compose 服务上设置 stdin_open 和 tty 。不幸的是,这是我在网上找到的唯一可能使容器在执行后保持运行的东西。
[码头工人撰写]
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 up 时,它会写入正确执行每个步骤的输出,然后到达末尾并以代码 0 退出。检查 docker ps 表明它实际上不再运行。