Docker ENV渲染配置文件

创建set_env.sh脚本

#!/bin/sh

# Set default values for environment variables if they are not set
export ENABLE_SYSTEM=${ENABLE_SYSTEM:-"true"}
export ENABLE_MYSQL=${ENABLE_MYSQL:-"false"}
export ENABLE_MAGIC=${ENABLE_MAGIC:-"false"}
export MAGIC_LOG_PATH=${MAGIC_LOG_PATH:-"/data/logs"}
export REGION_TYPE=${REGION_TYPE:-"1"}
export LOG_LEVEL=${LOG_LEVEL:-"INFO"}
export MYSQL_EXPORTER=${MYSQL_EXPORTER:-"mysql_exporter"}
export NODE_EXPORTER=${NODE_EXPORTER:-"node_exporter"}
export DISK_THRESHOLD=${DISK_THRESHOLD:-"60"}
export PROMETHEUS_URL=${PROMETHEUS_URL:-"http://localhost:9090"}
export ENABLE_PROMETHEUS_AUTH=${ENABLE_PROMETHEUS_AUTH:-"true"}
export PROMETHEUS_USER=${PROMETHEUS_USER:-"admin"}
export PROMETHEUS_PASS=${PROMETHEUS_PASS:-"admin"}

创建entrypoint.sh脚本渲染配置文件

#!/bin/sh

# Source the defaults script to set environment variables
. /app/set_env.sh

# Use envsubst to replace variables in the template file and create the final config file
envsubst < /app/config/mon.cfg.template > /app/config/mon.cfg

exec "$@"

创建渲染配置文件的模板

[GLOBAL]
enable_system = ${ENABLE_SYSTEM}
enable_mysql = ${ENABLE_MYSQL}
enable_magic = ${ENABLE_MAGIC}

[MAGIC]
log_base_path = ${MAGIC_LOG_PATH}

region_type = ${REGION_TYPE}

[LOGGING]
log_level = ${LOG_LEVEL}

[MYSQL]
mysql_job = ${MYSQL_EXPORTER}

[PROMETHEUS]
node_job = ${NODE_EXPORTER}
# 磁盘阈值,超过该数值会触发警告
disk_threshold = ${DISK_THRESHOLD}
url = ${PROMETHEUS_URL}
enable_auth = ${ENABLE_PROMETHEUS_AUTH}
username = ${PROMETHEUS_USER}
password = ${PROMETHEUS_PASS}

创建Dockerfile

FROM python:3.8-alpine

WORKDIR /app

# 安装必要的包,包括vim和gettext(为了获取envsubst)
RUN apk add --no-cache gettext

# 安装Python依赖
RUN pip3 install requests

# 复制应用文件
COPY . /app

RUN chmod +x /app/entrypoint.sh

ENTRYPOINT ["/app/entrypoint.sh"]
CMD ["python", "/app/bin/start.py"]

构建Docker镜像

docker build -t monitoring/prom_monitoring:v2.4 .

启动容器测试

docker run -rm \
--net host \
-v /data/logs:/data/logs \
-e ENABLE_SYSTEM=true \
-e MAGIC_LOG_PATH=/data/logs \
-e REGION_TYPE=1 \
-e NODE_EXPORTER=node_exporter \
-e PROMETHEUS_URL=http://x.x.x.x:9090 \
-e ENABLE_PROMETHEUS_AUTH=true \
-e PROMETHEUS_USER=admin \
-e PROMETHEUS_PASS=admin \
monitoring/prom_monitoring:v2.4
文章作者: 慕容峻才
文章链接: https://www.acaiblog.top/Docker-ENV渲染配置文件/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿才的博客
微信打赏
支付宝打赏