FROM debian:buster-20200803-slim MAINTAINER Datadog <package@datadoghq.com> ARG AGENT_VERSION_ARG=1:5.32.7-1 ARG AGENT_REPO_ARG=http://apt.datad0g.com/ ARG AGENT_REPO_CHANNEL_ARG=stable ENV DOCKER_DD_AGENT=yes \ AGENT_VERSION=$AGENT_VERSION_ARG \ AGENT_REPO=$AGENT_REPO_ARG \ AGENT_REPO_CHANNEL=$AGENT_REPO_CHANNEL_ARG \ DD_ETC_ROOT=/etc/dd-agent \ PATH="/opt/datadog-agent/embedded/bin:/opt/datadog-agent/bin:${PATH}" \ PYTHONPATH=/opt/datadog-agent/agent \ DD_CONF_LOG_TO_SYSLOG=no \ NON_LOCAL_TRAFFIC=yes \ DD_SUPERVISOR_DELETE_USER=yes \ DD_CONF_PROCFS_PATH="/host/proc" # workaround for stretch-slim missing man dirs RUN seq 1 8 | xargs -I{} mkdir -p /usr/share/man/man{} # Install the Agent RUN apt-get update \ && apt-get install --no-install-recommends -y gnupg dirmngr \ && echo "deb ${AGENT_REPO} ${AGENT_REPO_CHANNEL} main" > /etc/apt/sources.list.d/datadog.list \ && apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A2923DFF56EDA6E76E55E492D3A80E30382E94DE \ && apt-get update \ && apt-get install --no-install-recommends -y datadog-agent="${AGENT_VERSION}" \ && apt-get install --no-install-recommends -y ca-certificates \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Add healthcheck script COPY probe.sh /probe.sh # Configure the Agent # 1. Remove dd-agent user from init.d configuration # 2. Fix permission on /etc/init.d/datadog-agent # 3. Make healthcheck script executable RUN mv ${DD_ETC_ROOT}/datadog.conf.example ${DD_ETC_ROOT}/datadog.conf \ && sed -i 's/AGENTUSER="dd-agent"/AGENTUSER="root"/g' /etc/init.d/datadog-agent \ && chmod +x /etc/init.d/datadog-agent \ && chmod +x /probe.sh # Add Docker check COPY conf.d/docker_daemon.yaml ${DD_ETC_ROOT}/conf.d/docker_daemon.yaml # Add install and config files COPY entrypoint.sh /entrypoint.sh COPY config_builder.py /config_builder.py # Extra conf.d and checks.d VOLUME ["/conf.d", "/checks.d"] # Expose DogStatsD and trace-agent ports EXPOSE 8125/udp 8126/tcp # Healthcheck HEALTHCHECK --interval=5m --timeout=3s --retries=1 \ CMD ./probe.sh ENTRYPOINT ["/entrypoint.sh"] CMD ["supervisord", "-n", "-c", "/etc/dd-agent/supervisor.conf"]