docker环境变量

docker中获取环境变量

docker中的文件

配置文件 (python 获取)

API_ADDR = os.environ.get(“API_ADDR”,“http://127.0.0.1:8080/api/v1

cat rrd/config.py

import os

API_ADDR = os.environ.get("API_ADDR","http://127.0.0.1:8080/api/v1")
API_USER = os.environ.get("API_USER","admin")
API_PASS = os.environ.get("API_PASS","password")

# portal database
# TODO: read from api instead of db
PORTAL_DB_HOST = os.environ.get("PORTAL_DB_HOST","127.0.0.1")
PORTAL_DB_PORT = int(os.environ.get("PORTAL_DB_PORT",3306))
PORTAL_DB_USER = os.environ.get("PORTAL_DB_USER","root")
PORTAL_DB_PASS = os.environ.get("PORTAL_DB_PASS","")
PORTAL_DB_NAME = os.environ.get("PORTAL_DB_NAME","falcon_portal")

# alarm database
# TODO: read from api instead of db
ALARM_DB_HOST = os.environ.get("ALARM_DB_HOST","127.0.0.1")
ALARM_DB_PORT = int(os.environ.get("ALARM_DB_PORT",3306))
ALARM_DB_USER = os.environ.get("ALARM_DB_USER","root")
ALARM_DB_PASS = os.environ.get("ALARM_DB_PASS","")
ALARM_DB_NAME = os.environ.get("ALARM_DB_NAME","alarms")
获取配置文件中变量

cat rrd/store.py

import MySQLdb
from rrd import config
from rrd.utils.logger import logging

portal_db_cfg = {
        "DB_HOST": config.PORTAL_DB_HOST,
        "DB_PORT": config.PORTAL_DB_PORT,
        "DB_USER": config.PORTAL_DB_USER,
        "DB_PASS": config.PORTAL_DB_PASS,
        "DB_NAME": config.PORTAL_DB_NAME,
}

alarm_db_cfg = {
        "DB_HOST": config.ALARM_DB_HOST,
        "DB_PORT": config.ALARM_DB_PORT,
        "DB_USER": config.ALARM_DB_USER,
        "DB_PASS": config.ALARM_DB_PASS,
        "DB_NAME": config.ALARM_DB_NAME,
}

def connect_db(cfg):
    try:
        conn = MySQLdb.connect(
            host=cfg['DB_HOST'],
            port=cfg['DB_PORT'],
            user=cfg['DB_USER'],
            passwd=cfg['DB_PASS'],
            db=cfg['DB_NAME'],
            use_unicode=True,
            charset="utf8")
        return conn

用bash获取

cat config.sh

echo $PORTAL_DB_HOST
echo $API_ADDR

#输出

falcon.xxx.com.cn
http://falcon-api.xxx.com:8080/api/v1

在外面启动docker时设置环境变量

docker run --name falcon-dashboard-self -d \
    -p 8082:8081 \
    -e API_ADDR=http://falcon-api.xxx.com:8080/api/v1 \
    -e PORTAL_DB_HOST=falcon.xxx.com.cn \
    -e PORTAL_DB_PORT=3306 \
    -e PORTAL_DB_USER=falcon \
    -e PORTAL_DB_PASS=passwd \
    -e PORTAL_DB_NAME=falcon_portal \
    -e ALARM_DB_HOST=falcon.xxx.com.cn \
    -e ALARM_DB_PORT=3306 \
    -e ALARM_DB_USER=falcon \
    -e ALARM_DB_PASS=passwd \
    -e ALARM_DB_NAME=alarms \
    -w /open-falcon/dashboard \
    falcon-dashboard:local \
    './control startfg'

猜你喜欢

转载自blog.csdn.net/weixin_41088891/article/details/85057178