[边看边实践]-用docker搭建开发环境实践

546 阅读2分钟

前言

前两天上班摸鱼看到大佬的文章, 利用docker搭建前端开发环境 于是想按照自己的情况整理目前公司的项目用到的开发环境,总结需要的Dockerfile存档。

不过目前线上的服务器资源紧张并且网络环境不甚理想,所以还是打算把开发的工作放在本地,并且能最大限度使用本机已经存在的一些环境和配置(如:git配置,vscode配置等)

动手做

1. 本地的docker安装

这一步我打算偷个懒,直接去官方下载docker desktop,在此之前,确认自己的系统是win10非家庭版,并且把本机的hyper-v开启,具体步骤可以参考

image.png

2. 安装VSCode插件

直接在VSCode的插件里搜索Remote-Containers,安装即可

image.png

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开启容器

image.png

image.png

这一步就相当于

docker container run -v "${pwd}:/dpjia_ocs" -it node-dev /bin/bash

不过如果本地要开启好几个项目的时候,用客户端可以多选,命令行要每个目录去复制路径,看个人喜好。

5. 用remote-container链接容器

在VSCode中,使用Remote-Containers的命令 image.png 选择当前运行的容器 image.png 打开文件夹,找到刚才启动时挂载的目录,确定 image.png

项目就打开了 image.png

遇到的问题

如何同步本地的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仓库,就能很快搭建出开发环境了。