本发明专利技术提供一种不重启docker镜像修改python源码生效的优化方案,包括如下步骤:步骤一:生成docker镜像,通过centos系统生成相关镜像,并在基础操作系统的基础上添加systemd服务,步骤二:编写service配置文件,让python服务被systemd纳管,步骤三:再编入执行具体的服务启动程序的脚本,向systemd程序中注册python服务,让其能在开机时自动启动,本发明专利技术通过在systemd服务中注册环境变量的方式,将docker镜像的环境变量通知给python服务程序,实现docker环境变量变更能够及时通知给python服务程序,提供程序的灵活性,将docker镜像的环境变量同步到由systemd进程管理的程序中,实现快速部署到不同场景,可以灵活地修改docker内服务并且不需要重启docker镜像,可以作为程序热修复的一种手段,实现快速、临时修复bug,解决线上问题。解决线上问题。解决线上问题。
【技术实现步骤摘要】
一种不重启docker镜像修改python源码生效的优化方案
[0001]本专利技术涉及网络工程
,具体为一种不重启docker镜像修改python源码生效的优化方案。
技术介绍
[0002]docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,在容器内通过systemd服务对python程序进行管理,能够实现对python程序的任意启停,以及修改python服务代码后重启服务,但是由于sytemd服务的系统环境变量并不会继承docker的系统环境变量,导致docker的环境变量不能直接应用到python程序,降低程序的灵活性,python服务程序是依赖于systemd服务的,所以python服务程序的环境变量使用的是systemd的环境变量,导致docker环境变量信息不能被应用到python服务程序,由于云计算网络下部署环境可能随着部署地理位置的不同,docker的环境变量会不同,且python程序需要根据docker的环境变量做不同的处理,不能满足使用需求,造成python程序不够灵活。
技术实现思路
[0003]针对现有技术存在的不足,本专利技术目的是提供一种不重启docker镜像修改python源码生效的优化方案,以解决上述
技术介绍
中提出的问题,本专利技术通过在systemd服务中注册环境变量的方式,将docker镜像的环境变量通知给python服务程序,实现docker环境变量变更能够及时通知给python服务程序,提供程序的灵活性,解决了现有技术中的问题。
[0004]为了实现上述目的,本专利技术是通过如下的技术方案来实现:一种不重启docker镜像修改python源码生效的优化方案,包括如下步骤:
[0005]步骤一:生成docker镜像,通过centos系统生成相关镜像,并在基础操作系统的基础上添加systemd服务;
[0006]步骤二:编写service配置文件,让python服务被systemd纳管,并通过编入将docker环境变量写入到系统环境变量的脚本importenv.sh实现指定服务启动前的执行,将docker环境变量写入到环境变量文件中,再编入能够从环境变量文件中读取环境变量的脚本,并启动服务;
[0007]步骤三:再编入执行具体的服务启动程序的脚本,向systemd程序中注册python服务,让其能在开机时自动启动,从而在进行使用时,能在不对docker镜像进行重启的前提下,对python源码进行修改,并让其生效运行。
[0008]作为对本专利技术中所述一种不重启docker镜像修改python源码生效的优化方案的改进,所述步骤二编写service文件步骤为:在/etc/systemd/system/目录下编写service文件;
[0009]编写内容为:注册此unit的描述信息,并指定服务的依赖包括系统的日志服务和
网络服务,同时指定已root权限运行服务和服务启动前执行的命令,指定服务启动的命令,记录一旦服务异常则总是尝试重启,并设置重启的时间间隔为10s,同时指定服务的环境变量存储位置。
[0010]作为对本专利技术中所述一种不重启docker镜像修改python源码生效的优化方案的改进,所述service文件内容中指定启动程序为/usr/bin/network
‑
core
‑
agent脚本。
[0011]作为对本专利技术中所述一种不重启docker镜像修改python源码生效的优化方案的改进,所述importenv.sh脚本将1号进程的环境变量导入到环境变量文件中。
[0012]作为对本专利技术中所述一种不重启docker镜像修改python源码生效的优化方案的改进,所述network
‑
core
‑
agent是使用/environ文件为程序环境变量,此时就能将docker镜像中的环境变量获取到python程序中。
[0013]与现有技术相比,本专利技术的有益效果:
[0014]1、本专利技术通过在systemd服务中注册环境变量的方式,将docker镜像的环境变量通知给python服务程序,实现docker环境变量变更能够及时通知给python服务程序,提供程序的灵活性;
[0015]2、本专利技术将docker镜像的环境变量同步到由systemd进程管理的程序中,实现产品快速部署到不同场景,可以灵活地修改docker内服务并且不需要重启docker镜像,可以作为程序热修复的一种手段;
[0016]3、本专利技术能够借助docker镜像快速部署到不同的生产环境,同时借助本方案的环境变量读取机制,在不改变程序内容的情况下,不重启docker镜像的情况下,仅修改服务部署的环境变量,在服务内部修复代码,实现快速、临时修复bug,解决线上问题。
附图说明
[0017]为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术中描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一种实施方式,对于本领域普通技术人员来说,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0018]图1为本专利技术系统架构结构示意图;
[0019]图2为本专利技术步骤流程结构示意图。
具体实施方式
[0020]为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面对本专利技术具体实施方式中的技术方案进行清楚、完整的描述,以进一步阐述本专利技术,显然,所描述的具体实施方式仅仅是本专利技术的一部分实施方式,而不是全部的样式。
[0021]本具体实施方式是不重启docker镜像修改python源码生效的优化方案,其系统架构结构示意图如图1所示,步骤流程结构示意图如图2所示,该不重启docker镜像修改python源码生效的优化方案,包括如下步骤:
[0022]步骤一:生成docker镜像,通过centos系统生成相关镜像,并在基础操作系统的基础上添加systemd服务;
[0023]步骤二:编写service配置文件,让python服务被systemd纳管,并通过编入将
docker环境变量写入到系统环境变量的脚本importenv.sh实现指定服务启动前的执行,将docker环境变量写入到环境变量文件中,再编入能够从环境变量文件中读取环境变量的脚本,并启动服务;
[0024]步骤三:再编入执行具体的服务启动程序的脚本,向systemd程序中注册python服务,让其能在开机时自动启动,从而在进行使用时,能在不对docker镜像进行重启的前提下,对python源码进行修改,并让其生效运行。
[0025]同时,步骤二编写service文件步骤为:在/etc/systemd/system/目录下编写servi本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种不重启docker镜像修改python源码生效的优化方案,其特征在于,包括如下步骤:步骤一:生成docker镜像,通过centos系统生成相关镜像,并在基础操作系统的基础上添加systemd服务;步骤二:编写service配置文件,让python服务被systemd纳管,并通过编入将docker环境变量写入到系统环境变量的脚本importenv.sh实现指定服务启动前的执行,将docker环境变量写入到环境变量文件中,再编入能够从环境变量文件中读取环境变量的脚本,并启动服务;步骤三:再编入执行具体的服务启动程序的脚本,向systemd程序中注册python服务,让其能在开机时自动启动,从而在进行使用时,能在不对docker镜像进行重启的前提下,对python源码进行修改,并让其生效运行。2.根据权利要求1所述的一种不重启docker镜像修改python源码生效的优化方案,其特征在于,所述步骤二编写service文件步骤为:在/etc/systemd/system/目录下编写service文件;编...
【专利技术属性】
技术研发人员:刘永,
申请(专利权)人:紫光云南京数字技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。