python - 如何在 docker 入口点中运行导出命令?
问题描述
我正在尝试将 Datadog APM 跟踪和日志收集集成到在 Docker 上运行的 python 应用程序中。在 Dockerfile 中,我需要激活 conda 虚拟环境并导出一个环境 DD_AGENT_HOST。
FROM continuumio/miniconda3
WORKDIR /app
COPY src ./src
COPY application.yaml .
COPY wsgi.py .
COPY gunicorn.conf.py .
COPY logging.ini .
RUN conda env create -f application.yaml
SHELL ["conda", "run", "-n", "dd_venv", "/bin/bash", "-c"]
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "dd_venv", "ddtrace-run", "gunicorn", "-c", "gunicorn.conf.py", "wsgi:app", "--preload"]
我可以使用上面的 Dockerfile 运行应用程序。但是,应用程序需要导出环境 DD_AGENT_HOST 才能与 Datadog 连接,并且必须通过 HTTP 请求检索 DD_AGENT_HOST 的值。
ENTRYPOINT ["conda", "run", "--no-capture-output", "-n", "dd_venv", "export DD_AGENT_HOST=$(wget <ip_ddress>)", "ddtrace-run", "gunicorn", "-c", "gunicorn.conf.py", "wsgi:app", "--preload"]
我尝试如上所述将导出命令添加到 ENTRYPOINT,这导致 Docker 运行失败并出现错误“export DD_AGENT_HOST=: command not found:.
完成此操作的正确方法是什么?