前言
前两天上班摸鱼看到大佬的文章, 利用docker搭建前端开发环境 于是想按照自己的情况整理目前公司的项目用到的开发环境,总结需要的Dockerfile存档。
不过目前线上的服务器资源紧张并且网络环境不甚理想,所以还是打算把开发的工作放在本地,并且能最大限度使用本机已经存在的一些环境和配置(如:git配置,vscode配置等)
动手做
1. 本地的docker安装
这一步我打算偷个懒,直接去官方下载docker desktop,在此之前,确认自己的系统是win10非家庭版,并且把本机的hyper-v开启,具体步骤可以参考
2. 安装VSCode插件
直接在VSCode的插件里搜索Remote-Containers,安装即可
3. 做一个简单的Dockerfile生成第一个环境
新建了一个环境专用的目录,编写一个Dockerfile文件,内容如下
FROM node:15.10.0-slim
RUN npm set registry https://registry.npm.taobao.org #设置淘宝源
RUN apt-get update
RUN apt-get install -y git
保存完文件之后,在当前目录打开命令行(cmd/powershell/git-bash任意一款都行),执行命令
docker build -t node-dev .
4. 用Docker Desktop开启容器
这一步就相当于
docker container run -v "${pwd}:/dpjia_ocs" -it node-dev /bin/bash
不过如果本地要开启好几个项目的时候,用客户端可以多选,命令行要每个目录去复制路径,看个人喜好。
5. 用remote-container链接容器
在VSCode中,使用Remote-Containers的命令
选择当前运行的容器
打开文件夹,找到刚才启动时挂载的目录,确定
项目就打开了
遇到的问题
如何同步本地的ssh-key
因为本地已经配置了git的ssh-key,在docker中不想重新配置的话,需要做以下操作
开启ssh-agent服务,使用管理员身份开启powershell
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
确保ssh-agent开启之后,添加本地的ssh配置
ssh-add $HOME/.ssh/id_rsa
# 或者直接
ssh-add
之后重新启动容器就可以在容器里直接使用本机的git ssh-key了
其他具体操作参考VSCode的文档:code.visualstudio.com/docs/remote…
总结
一直埋头写业务代码,要不是摸鱼也没看到这么好的文章来实践,其实我们很早就用上docker来部署线上服务了,但是本地的环境都还一直是手动安装,之前也尝试过用虚拟机来保证环境一致,但是每次动辄好几个G的镜像文件拷来拷去也并不方便,久了可能也会有很多不同版本的镜像,没有办法做版本管理,而且虚拟机的镜像一旦损坏,重新配置起来依然很麻烦。
现在用上docker之后,每次配置新机器时最少只需要下载
- Docker Desktop
- VSCode 两个安装包,以及有所有开发环境的Dockerfile仓库,就能很快搭建出开发环境了。