为什么要用 Docker
开发 🤔
直接在系统上开发不香吗?香,但是 Docker
有下面4香
-
环境依赖管理:
Docker
容器可以管理所有依赖项,例如前端里面的node
和npm
版本,不需要在本地安装和维护这些依赖项 -
隔离:
Docker
容器可以隔离应用程序和其运行环境,有助于防止应用程序之间的冲突,也能防止应用程序对主机系统产生意外的更改 -
易于分发:任何时候都可以将应用程序分发给其他开发人员或测试人员,因为他们可以在任何其他设备上以相同的方式运行该应用程序,而无需进行任何配置,可以直接使用同一个
docker file
文件构建镜像,也可以拉取私有服务中的docker image
-
状态管理:如果应用程序是无状态的,可以使用
Docker Compose
来创建开发和调试环境,并轻松地在不同的环境中部署应用程序。
整体来看使用 Docker
开发应用程序可以提高开发效率,简化部署和分发过程,同时保证应用程序的运行环境和稳定性。
主要还是遇到了实际问题需要处理😅
遇到的问题
前端开发的项目在本地运行,打包没问题,然后发布到对应的测试环境和线上环境的时候,然后线上打包异常,线上打包使用 DevOps
平台进行的发布,经排查似乎是 Docker
容器中出的问题。
具体场景描述可以看这篇文章 DevOps发版失败,发版仿佛回到了石器时代😣
解决思路
由于没有 DevOps
服务的操作权限,尝试本地安装 Docker
拉取 node
镜像搭建前端环境容器,先在本地 Docker
容器中测试前端项目,如果运行打包都没问题,把本地的 Docker
容器环境导出来,再发给对应有权限的人帮忙到 DevOps
对应的服务器中再次测试
安装Docker
官网下载
官网地址: https://www.docker.com/
本地系统为 Windows11
, 直接下载安装对应的 exe
文件即可, 运行后桌面右下角会出现鲸鱼小图标
也可以在 命令提示符
或 Windows PowerShell
里面执行 docker -v
查看否是安装成功,后面所有的命令操作全部是在 Windows PowerShell
中执行的
拉取镜像
前端环境标配 node
环境,有的会搭配 yarn
等其他工具, 这里先拉取一个 node
镜像
docker pull node
镜像默认是从 Docker Hub
上拉取的,默认拉取的是 latest
最新版本,也可以指定 node
版本
docker pull node: