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