在使用诸如 ssh key 和 tls 私钥之类的保密文件时,不可能在每一个设备上都保存一遍。通常来说有 2 种使用方法:
- 方便使用: 将所有密钥都保存在一个远程服务器上,在任何地点用统一的密码访问这个服务器。
- 保密性高: 将所有密钥保存在一个本地笔记本上,到哪里都带着
在<a href={'./use-container-for-development'}>此文的思路上,方便的方法可以在任何支持 docker 的机器上一键部署。但对保密的方法来说,囿于完整的桌面版 OS 极度依赖完整的硬件,可以优化的点就非常少了。主要的障碍如下:
- 带开发者工具(F12)的浏览器只在桌面版 OS 中有
- 可连接外置屏幕
其它的问题,诸如可用的命令行之类的问题都已经解决。此文主要记录已解决的问题。
开发环境
一个完整的开发环境包括 IDE、必要的工具链和足以支持这些软件的硬件。但移动平台很难提供上述资源。最简单的选项是将重的任务放在一个远程的服务器上,移动平台仅提供客户端。最佳的部署模式是在远程 k8s 集群中保留一个作为远程服务器的 pod,移动客户端再用 ssh 或 kubectl 连接到服务器。
交互界面
开发中最常用的 UI 包括 2 个部分:写代码和测试。写代码的部分我只需要一个命令行界面,但测试用的部分就需要一些图形化界面。
代码界面
移动平台(Android)上最佳的命令行界面是termux。如果要安装最新版本,需要使用F-Droid而非 Google Play。Termux 本质上是一个包含许多如apt
之类常用工具的 Debian-style 的交互界面。
因为开发环境在远程机器上,termux 仅需要 kubectl 作为客户端。可在官方程序池中安装。
测试界面
一个测试界面需要至少一个包含开发者工具的浏览器,因此现阶段还是需要一个笔记本,用来远程登陆移动平台。Termux 的官方程序池中包含 openssh 服务器,在service的帮助下可以在启动时自动开启 ssh 服务器。