From 0a2e7aa99f51d7bd5415bdce7226674b9de4f739 Mon Sep 17 00:00:00 2001 From: pycook Date: Thu, 30 May 2024 13:08:18 +0800 Subject: [PATCH] feat: put the mysql password in .env --- .env | 6 ++++++ cmdb-api/settings.example.py | 10 ++++++++-- docker-compose.yml | 24 +++++++++++------------- 3 files changed, 25 insertions(+), 15 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..77b92e1 --- /dev/null +++ b/.env @@ -0,0 +1,6 @@ + MYSQL_ROOT_PASSWORD='123456' + MYSQL_HOST='mysql' + MYSQL_PORT=3306 + MYSQL_USER='cmdb' + MYSQL_DATABASE='cmdb' + MYSQL_PASSWORD='123456' diff --git a/cmdb-api/settings.example.py b/cmdb-api/settings.example.py index 4887092..49e58d4 100644 --- a/cmdb-api/settings.example.py +++ b/cmdb-api/settings.example.py @@ -20,10 +20,16 @@ DEBUG_TB_INTERCEPT_REDIRECTS = False ERROR_CODES = [400, 401, 403, 404, 405, 500, 502] +MYSQL_USER = env.str('MYSQL_USER', default='cmdb') +MYSQL_PASSWORD = env.str('MYSQL_PASSWORD', default='123456') +MYSQL_HOST = env.str('MYSQL_HOST', default='127.0.0.1') +MYSQL_PORT = env.int('MYSQL_PORT', default=3306) +MYSQL_DATABASE = env.str('MYSQL_DATABASE', default='cmdb') # # database -SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://{user}:{password}@127.0.0.1:3306/{db}?charset=utf8' +SQLALCHEMY_DATABASE_URI = f'mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@' \ + f'{MYSQL_HOST}:{MYSQL_PORT}/{MYSQL_DATABASE}?charset=utf8' SQLALCHEMY_BINDS = { - 'user': 'mysql+pymysql://{user}:{password}@127.0.0.1:3306/{db}?charset=utf8' + 'user': SQLALCHEMY_DATABASE_URI } SQLALCHEMY_ECHO = False SQLALCHEMY_TRACK_MODIFICATIONS = False diff --git a/docker-compose.yml b/docker-compose.yml index 6248cc9..c7de503 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,4 +1,4 @@ -version: '3.5' +version: '2.19' services: cmdb-db: @@ -6,16 +6,16 @@ services: container_name: cmdb-db environment: TZ: Asia/Shanghai - MYSQL_ROOT_PASSWORD: '123456' - MYSQL_DATABASE: 'cmdb' - MYSQL_USER: 'cmdb' - MYSQL_PASSWORD: '123456' + MYSQL_ROOT_PASSWORD: "$MYSQL_ROOT_PASSWORD" + MYSQL_DATABASE: '$MYSQL_DATABASE' + MYSQL_USER: '$MYSQL_USER' + MYSQL_PASSWORD: '$MYSQL_PASSWORD' volumes: - db-data:/var/lib/mysql - ./docs/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf - ./docs/cmdb.sql:/docker-entrypoint-initdb.d/cmdb.sql healthcheck: - test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"] + test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "-p$MYSQL_ROOT_PASSWORD"] interval: 10s timeout: 5s retries: 5 @@ -46,12 +46,14 @@ services: cmdb-api: image: registry.cn-hangzhou.aliyuncs.com/veops/cmdb-api:2.4.5 -# build: -# context: . -# target: cmdb-api container_name: cmdb-api environment: TZ: Asia/Shanghai + MYSQL_HOST: '$MYSQL_HOST' + MYSQL_PORT: $MYSQL_PORT + MYSQL_USER: '$MYSQL_USER' + MYSQL_DATABASE: '$MYSQL_DATABASE' + MYSQL_PASSWORD: '$MYSQL_PASSWORD' WAIT_HOSTS: cmdb-db:3306, cmdb-cache:6379 depends_on: cmdb-db: @@ -77,7 +79,6 @@ services: flask init-import-user-from-acl flask init-department flask cmdb-counter > counter.log 2>&1 - networks: new: aliases: @@ -85,9 +86,6 @@ services: cmdb-ui: image: registry.cn-hangzhou.aliyuncs.com/veops/cmdb-ui:2.4.5 -# build: -# context: . -# target: cmdb-ui container_name: cmdb-ui depends_on: - cmdb-api