电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

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

瀏覽:101日期: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 編程
相關文章:
主站蜘蛛池模板: 信阳网站建设专家-信阳时代网联-【信阳网站建设百度推广优质服务提供商】信阳网站建设|信阳网络公司|信阳网络营销推广 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 并网柜,汇流箱,电控设备,中高低压开关柜,电气电力成套设备,PLC控制设备订制厂家,江苏昌伟业新能源科技有限公司 | 商秀—企业短视频代运营_抖音企业号托管| 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 物流之家新闻网-最新物流新闻|物流资讯|物流政策|物流网-匡匡奈斯物流科技 | 挖掘机挖斗和铲斗生产厂家选择徐州崛起机械制造有限公司 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 反渗透水处理设备|工业零排放|水厂设备|软化水设备|海南净水设备--海南水处理设备厂家 | 一级建造师培训_一建培训机构_中建云筑建造师培训网校 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 加盟店-品牌招商加盟-创业项目商机平台 | 预制直埋蒸汽保温管-直埋管道-聚氨酯发泡保温管厂家 - 唐山市吉祥保温工贸有限公司 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 软瓷_柔性面砖_软瓷砖_柔性石材_MCM软瓷厂家_湖北博悦佳软瓷 | 工业车间焊接-整体|集中除尘设备-激光|等离子切割机配套除尘-粉尘烟尘净化治理厂家-山东美蓝环保科技有限公司 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 水篦子|雨篦子|镀锌格栅雨水篦子|不锈钢排水篦子|地下车库水箅子—安平县云航丝网制品厂 | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 防水套管厂家_刚性防水套管_柔性防水套管_不锈钢防水套管-郑州中泰管道 | 商标转让-商标注册-商标查询-软著专利服务平台 - 赣江万网 | 济南电缆桥架|山东桥架-济南航丰实业有限公司 | 低温等离子清洗机(双气路进口)-嘉润万丰 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 车牌识别道闸_停车场收费系统_人脸识别考勤机_速通门闸机_充电桩厂家_中全清茂官网 | 贵阳用友软件,贵州财务软件,贵阳ERP软件_贵州优智信息技术有限公司 | 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | UV固化机_UVLED光固化机_UV干燥机生产厂家-上海冠顶公司专业生产UV固化机设备 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 过滤器_自清洗过滤器_气体过滤器_苏州华凯过滤技术有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 防爆暖风机_防爆电暖器_防爆电暖风机_防爆电热油汀_南阳市中通智能科技集团有限公司 | 重庆LED显示屏_显示屏安装公司_重庆LED显示屏批发-彩光科技公司 重庆钣金加工厂家首页-专业定做监控电视墙_操作台 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 上海噪音治理公司-专业隔音降噪公司-中广通环保 | 订做不锈钢_不锈钢定做加工厂_不锈钢非标定制-重庆侨峰金属加工厂 |