diff --git a/README.md b/README.md index 1e0ad0d..e143c32 100644 --- a/README.md +++ b/README.md @@ -11,10 +11,10 @@ - 一键配置:rosdep(小鱼的rosdepc,又快又好用) [贡献@小鱼](https://github.com/fishros) - 一键配置:ROS环境(快速更新ROS环境设置,自动生成环境选择) [贡献@小鱼](https://github.com/fishros) - 一键配置:系统源(更换系统源,支持全版本Ubuntu系统) [贡献@小鱼](https://github.com/fishros) +- 一键安装:Docker(支持amd64和arm64) [贡献@alyssa](https://github.com/alyssa1024) 可以参考的待添加工具: -- 一键安装:Docker - 一键安装:cartographer @@ -89,3 +89,4 @@ class Tool(BaseTool): - 一键配置系统源 [小鱼](https://github.com/fishros) - 一键安装nodejs [小鱼](https://github.com/fishros) - 一键安装vscode [小鱼](https://github.com/fishros) +- 一键安装:Docker(支持amd64和arm64) [@alyssa](https://github.com/alyssa1024) diff --git a/install.py b/install.py index 2ed3131..156557c 100644 --- a/install.py +++ b/install.py @@ -13,6 +13,7 @@ 5: {'tip':'一键配置:系统源(更换系统源,支持全版本Ubuntu系统)', 'type':2, 'tool':url_prefix+'tools/tool_config_system_source.py' ,'dep':[] }, 6: {'tip':'一键安装:nodejs开发环境(通过nodejs可以预览小鱼官网噢)', 'type':0, 'tool':url_prefix+'tools/tool_install_nodejs.py' ,'dep':[] }, 7: {'tip':'一键安装:VsCode', 'type':0, 'tool':url_prefix+'tools/tool_install_vscode.py' ,'dep':[] }, + 8: {'tip':'一键安装:Docker', 'type':0, 'tool':url_prefix+'tools/tool_install_docker.py' ,'dep':[] }, 77: {'tip':'测试模式:运行自定义工具测试'}, } diff --git a/tools/tool_install_docker.py b/tools/tool_install_docker.py new file mode 100644 index 0000000..1fd5cb2 --- /dev/null +++ b/tools/tool_install_docker.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +from .base import BaseTool +from .base import PrintUtils,CmdTask,FileUtils,AptUtils,ChooseTask +from .base import osversion,osarch +from .base import run_tool_file + +class Tool(BaseTool): + def __init__(self): + self.name = "一键安装Docker,支持amd64和arm64架构系统" + self.type = BaseTool.TYPE_INSTALL + self.autor = 'alyssa' + + def install_docker(self): + PrintUtils.print_info("开始根据系统架构,为你下载对应版本的docker~") + + # 更换系统源 + # dic = {1:"更换系统源再继续安装",2:"不更换继续安装"} + # code,result = ChooseTask(dic, "如果您是第一次安装,推荐您先更换一下系统源").run() + # if code==1: + # run_tool_file('tools.tool_config_system_source') + + # check apt + if not AptUtils.checkapt(): return False + + #pre-install + CmdTask('sudo apt install apt-transport-https ca-certificates curl software-properties-common -y',120).run() + + #add key + CmdTask('curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -',10).run() + #verify key + CmdTask('sudo apt-key fingerprint 0EBFCD88',10).run() + + # 根据系统架构下载不同版本的安装包 + if osarch=='amd64': + CmdTask('sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"',os_command=True).run() + elif osarch=='arm64': + CmdTask('sudo add-apt-repository "deb [arch=arm64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"',os_command=True).run() + else: + return False + PrintUtils.print_info("下载完成,接下来升级apt索引~") + CmdTask("sudo apt update").run() + PrintUtils.print_info("开始安装最新版本docker CE~") + CmdTask("sudo apt install docker-ce -y").run() + + PrintUtils.print_info("安装完成,接下来你可以尝试使用docker --version指令测试是有正常回显~") + + def run(self): + self.install_docker() +