#!/usr/bin/python
# -*- coding: utf-8 -*-

import os
import time

# 注意:input() 和 raw_input() 这两个函数均能接收 字符串 ,但 raw_input() 直接读取控制台的输入(任何类型的输入它都可以接收)。
# 而对于 input() ,它希望能够读取一个合法的 python 表达式,即你输入字符串的时候必须使用引号将它括起来,否则它会引发一个 SyntaxError 。
# 除非对 input() 有特别需要,否则一般情况下我们都是推荐使用 raw_input() 来与用户交互。
# 注意:python3 里 input() 默认接收到的是 str 类型。
# 获取控制台输入
version = raw_input('Enter your version: ')

# 动态生成版本号
newVersion = time.strftime('v%y%m%d-%H%M%S')

# 如果输入为空
if version:
    newVersion=version

# 定义项目名称集合
projects = [
    {'name': '120-innovent-innoventpos', 'version': newVersion, 'port': '20120'},
    {'name': '005-paas-system', 'version': newVersion, 'port': '20005'},
    {'name': '021-paas-sftp', 'version': newVersion, 'port': '20021'},
]

# 打开文件
file = open('build-app-images.py', 'w')

# 向文件中写入数据
file.write("import os\n\n")
file.write("os.system('rm -f /home/deploy/images/jar/app/*.jar')\n\n")
for obj in projects:
    str= []
    temp = "os.system('echo \"######## {0} ########\"')\n".format(obj['name'])
    str.append(temp)
    temp = "os.system('ln -f /home/deploy/kube_deploy/{0}/{0}.jar /home/deploy/images/jar/app/{0}.jar')\n".format(obj['name'])
    str.append(temp)
    temp = "os.system('docker build -t sinoeyes.io/library/{0}-app:{2} --build-arg file={3}.jar --build-arg port={1} /home/deploy/images/jar/app')\n".format(obj['name'][4:], obj['port'], obj['version'],obj['name'])
    str.append(temp)
    temp = "os.system('docker push sinoeyes.io/library/{0}-app:{1}')\n".format(obj['name'][4:], obj['version'])
    str.append(temp)
    str.append('\n')
    file.write(''.join(str))
file.write("os.system('rm -f /home/deploy/images/jar/app/*.jar')\n")

# 关闭文件
file.close()
分类: Python

发表评论

电子邮件地址不会被公开。 必填项已用*标注