亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

python 如何把docker-compose.yaml導入到數據庫相關條目里

瀏覽:94日期:2022-06-29 17:51:48

實現將docker-compose.yaml導入相關的數據庫條目的功能,利用python腳本,yaml、sqlalchemy、json等模塊實現。

docker-compose.yaml

_version: '1'services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1

python deme文件。

#!/usr/bin/env python# -*- coding: utf-8 -*- import yamlimport tracebackfrom sqlalchemy import create_enginefrom sqlalchemy.orm import sessionmakerfrom sqlalchemy import Column, DateTime, Index, Integer, String, Text, text, BigIntegerfrom sqlalchemy.ext.declarative import declarative_baseimport datetimeimport jsonimport base64 '''作用:將docker-compose.yaml導入到數據庫的docker-compose表中。docker-compose表創建語句: CREATE TABLE `docker_compose` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `services` text NOT NULL COMMENT ’@desc services’, `creator` int(11) DEFAULT ’0’, `modifier` int(11) DEFAULT ’0’, `gmt_created` datetime NOT NULL, `gmt_modified` datetime NOT NULL, `_version` varchar(64) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1092 DEFAULT CHARSET=utf8 ''' def now(): return datetime.datetime.now() BASE = declarative_base() class DockerCompose(BASE): __tablename__ = ’docker_compose’ id = Column(BigInteger, primary_key=True) services = Column(Text, nullable=False) _version = Column(String(64)) creator = Column(Integer, server_default=text('’0’')) modifier = Column(Integer, server_default=text('’0’')) gmt_created = Column(DateTime, nullable=False) gmt_modified = Column(DateTime, nullable=False) def get_session(db_connection): ''' db connection api :param db_connection: :return: ''' DB_URL = ’mysql+pymysql://%s’ % (db_connection,) engine = create_engine(DB_URL, pool_size=25, pool_recycle=3600, echo=False) Session = sessionmaker(bind=engine) return Session() def load_yaml(filename): try: with open(filename, ’r’) as fh: return yaml.safe_load(fh) except (IOError, yaml.YAMLError) as e: raise Exception(u'{}'.format(traceback.format_exc())) def import_engine_compose(instance_config, dbConnection): services = instance_config[’services’] _version = instance_config.get(’_version’) session = get_session(dbConnection) docker_compose = DockerCompose( gmt_created=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), gmt_modified=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), creator=999, modifier=999, _version=_version, services=json.dumps(services) ) session.add(docker_compose) session.commit() def main(dbConnection, filepath='docker_compose.yaml'): docker_compose_config = load_yaml(filepath) import_engine_compose(docker_compose_config, dbConnection) if __name__ == ’__main__’: dbConnection = 'xxx' DB_CONNECTION = base64.b64decode(dbConnection) main(DB_CONNECTION)

補充:docker-compose.yaml的編寫

當我們打包好了鏡像的時候,一個一個區整理的時候,也是很浪費功夫,尤其是我們修改了一些代碼的時候

version: '2'services: mysql: image: mysql:mysql hostname: mysql ports: - '3306:3306' volumes: - '/data/mysql:/var/lib/mysql' restart: always backend: image: backend:0.5 command: 'python3 main.py' hostname: backend volumes: - '/data/files:/app/files' network_mode: 'host' depends_on: - mysql restart: always frontend: image: frontend:0.5 hostname: frontend volumes: - '/Users/gaven/Desktop/anji/frontend/web/nginx.conf:/etc/nginx/nginx.conf' - '/Users/gaven/Desktop/anji/frontend/web/default.conf:/etc/nginx/conf.d/default.conf' ports: - '80:80' network_mode: 'host' restart: always

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 欧美三级第一页 | 鲁一鲁中文字幕久久 | 免费xxxxx大片在线观看影视 | 不卡的在线视频免费观看 | 国产乱码一区二区三区四区 | 国产永久免费视频m3u8 | 日韩特级毛片免费观看视频 | 欧美日韩黄色 | 一级特黄aa毛片免费观看 | 国产精品一页 | 国产高清在线观看 | 一级毛片完整免费版 | 午夜在线免费视频 | 国产99欧美精品久久精品久久 | 国产一区二区免费福利片 | 久久国产经典视频 | 国产成人一区二区三区视频免费蜜 | 久久精品成人免费看 | 国产一级高清 | 国产精品日韩欧美久久综合 | 精品国产一区二区三区不卡在线 | 欧美精品免费在线 | 亚洲黄色视屏 | 国产精品三级视频 | 亚洲五月花 | 薰衣草视频高清在线观看免费 | 亚洲精品色综合久久久 | 视色视频在线观看 | 一级欧美一级日韩毛片99 | 丁香婷婷综合五月综合色啪 | 国产成人8x视频一区二区 | 婷婷亚洲久悠悠色在线播放 | 精品久久久久久国产 | 成人国产一区二区 | 纯欧美一级毛片_免费 | 日韩欧美在线视频观看 | 久久国产精品亚洲va麻豆 | 亚洲精品一区二区三区在线播放 | 婷婷四房综合激情五月性色 | 亚洲第一综合色 | 亚洲国产系列一区二区三区 |