搭建开发环境是个非常个性化的过程,每个开发者和每个项目都有自己需要或喜欢的开发工具。当构建好了环境后,做为开发者的我们希望在后面能够可以重复使用。
也就是可以这样想:如果我们可以创建一种可以轻松构建、复制和启动的模板环境,那将为自己节省大量时间。开发者不再需要先部署操作系统 (OS),然后再安装所有必需的软件,这只是为你的开发环境重新使用“模板”的问题。
听起来是不错的主意,对吧?
幸运的是,有几种简单的方法可以做到这一点。第一个方法是使用虚拟机技术,例如Oracle的VirtualBox,构建自己的基础 VM,然后根据需要对其进行克隆。另一种方法是创建一个基础容器镜像,然后您可以根据需要进行部署。无论采用哪种方式,这都是使用 Linux 创建可重复的前端(或后端)开发环境的好方法。
我要做的是演示如何使用 Linux Server 20.04 和 Docker 容器来做到这一点。
虽然我们已经完成了从容器创建映像的过程,但这里重要的是演示如何通过在操作系统上安装某些开发工具来完成此操作(然后创建“模板”镜像以供以后使用)。
安装 Docker
在我们做任何事情之前,必须先安装 Docker。为此,请登录你的 Ubuntu 实例并使用以下命令安装必要的依赖项:
sudo apt-get install ca-certificates curl gnupg lsb-release -y
添加 Docker GPG 密钥:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
使用以下命令添加 Docker 存储库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新 apt 并安装 Docker 社区版:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
将用户添加到 docker 组(以避免与使用 sudo 部署容器相关的安全问题):
sudo usermod -aG docker $USER
注销并重新登录以使更改生效。
创建“模板”容器
我们现在将部署一个容器作为我们的模板。我们将使用最新版本的官方 Ubuntu 映像来执行此操作:
docker run -ti --name=ubuntu-dev-base ubuntu:latest
此命令完成后,您会发现自己处于容器的 bash 提示符下。
安装“基础”软件
你所需要的软件显然取决于项目和/或你的工作方式。但是让我们安装一些相当常见的前端开发软件。在容器的 bash 提示符下,使用如下以下命令更新 apt:
apt-get update
让我们首先使用以下命令安装 Node.js 和 npm(Node.js 包管理器):
apt-get install nodejs npm -y
回答区域设置问题(你所在的位置和时区),安装将完成。使用 npm 包管理器,我们可以使用以下命令安装 SaSS(Syntactically Awesome Style Sheets):
npm install -g sass
现在,让我们安装 git:
apt-get install git -y
然后可以将所需的任何其他工具(只要它们没有 GUI)安装到正在运行的容器上。完成该过程后,使用以下命令退出容器:
exit
我们现在将使用以下命令提交更改:
docker commit ubuntu-dev-base
这将创建一个未标记的镜像。此时如果使用命令“docker images”,你将看到一个镜像,其中 Repository 和 Tag 字段都列为 < None >。但我们需要标记该镜像,以便后续可以使用它。为此,复制与未标记镜像关联 ID,使用以下命令:
docker tag ID ubuntu-dev-base
其中 ID 是未标记镜像的 ID。现在应该有一个看起来像这样的镜像列表:
1 | ubuntu-dev-base latest b926321b0096 About a minute ago 703MB |
然后,你可以部署一个全新的容器,使用该新“模板”和如下命令:
docker run -it -d --name ubuntu-projectX ubuntu-dev-base
容器运行后,可以使用如下命令来访问它:
docker exec -it ubuntu-projectX bash
你可以随心所欲地启动尽可能多的这些环境,因为知道原始“模板”将保持不变。
如果需要 GUI 工具如何处理?
如果开发环境需要 GUI 工具,最好的办法是使用虚拟机工具,比如 VirtualBox。我们可以创建一个新 VM(使用您选择的桌面),安装必要软件,然后根据需要克隆该 VM。
例如要在 VirtualBox 中克隆 VM,需要执行以下操作。在左侧导航中选择要克隆的虚拟机,然后单击克隆。在结果窗口(图 1)中,为克隆命名(例如 Dev Base),选择一个位置,然后单击 Next。
图 1:克隆 Ubuntu 22.04 Daily 的实例
在下一个窗口中,选择完整克隆,然后单击克隆。克隆需要一些时间(2-5 分钟,具体取决于 VM 的大小和主机的速度)。完成后,启动克隆,登录桌面,然后开始安装您需要的软件。此过程将与上面概述的相同,只是需要将sudo与命令一起使用。
安装所需的所有软件后,关闭操作系统。你可以根据需要克隆这个新的 VM,以获得完全满足所需求的可重复开发环境。
编译:老胡
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。