From 8552607468ce1716f6cc3e37ffc5ed643a7b9f2c Mon Sep 17 00:00:00 2001 From: guvmao Date: Thu, 23 Dec 2021 20:13:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20Docker=20=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E6=97=B6=E6=94=AF=E6=8C=81=E4=BB=8E=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E5=88=9D=E5=A7=8B=E5=8C=96=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 ++-- README.MD | 17 +++++++++++++++++ docker-entrypoint.sh | 17 +++++++++++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) create mode 100755 docker-entrypoint.sh diff --git a/Dockerfile b/Dockerfile index 323de733..d38639f6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -45,6 +45,6 @@ COPY static static COPY views views -#ENTRYPOINT [ "/app/PrometheusAlert" ] +COPY docker-entrypoint.sh docker-entrypoint.sh -CMD if [ ! -f /app/db/PrometheusAlertDB.db ];then cp /opt/PrometheusAlertDB.db /app/db/PrometheusAlertDB.db;echo 'init ok!';else echo 'pass!';fi && /app/PrometheusAlert +ENTRYPOINT [ "/bin/sh", "/app/docker-entrypoint.sh" ] diff --git a/README.MD b/README.MD index f2ff8037..83163175 100644 --- a/README.MD +++ b/README.MD @@ -84,6 +84,23 @@ curl http://localhost:8080/health #默认登录帐号和密码在app.conf中有配置 ``` +## Docker + +配置文件 app.conf 的内容可以使用环境变量的方式初始化。 + +所设置的变量前缀必须以 `PA_` 开始,后面使用配置文件的配置项名称,特别注意的是此配置对大小写并不敏感。 + +示例 + +``` +docker run -d \ +-e PA_LOGIN_USER=prometheusalert +-e PA_LOGIN_PASSWORD=prometheusalert +-e PA_TITLE=PrometheusAlert +feiyu563/prometheus-alert +``` + +所有的配置文件内容请[点击此处](https://github.com/feiyu563/PrometheusAlert/blob/master/conf/app-example.conf)查看

diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100755 index 00000000..c5a3253b --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/bash +if [ ! -f /app/db/PrometheusAlertDB.db ]; then + cp /opt/PrometheusAlertDB.db /app/db/PrometheusAlertDB.db + echo 'init ok!' +else + echo 'pass!' +fi + +if env | grep -q '^PA_[^=].\+'; then + for VAR_NAME in $(env | grep '^PA_[^=].\+' | sed -r "s/^PA_([^=]*).*/\1/g"); do + VAL_CONTENT=$(eval echo \${PA_${VAR_NAME}}) + echo "Config overridden from Environment variable, var=${VAR_NAME}=${VAL_CONTENT}" + sed -i -E "s/(${VAR_NAME})(\ *=\ *).*/\1\2${VAL_CONTENT}/i" /app/conf/app.conf + done +fi + +exec /app/PrometheusAlert