背景:只能每天晚上才能看基金涨跌很烦,偶然在github上发现一个实时基金估值的项目,配置一下
项目准备:
- docker desktop
- node
- git
打开虚拟环境
很久没有用docker了,今天进去发现虚拟环境windows自己莫名其妙关闭了,如果进入docker desktop时弹出这个错误
需要进入控制中心-程序,勾选hyper和windows虚拟机监控平台就行,重启后虚拟环境就打开了
部署
git clone https://github.com/hzm0321/real-time-fund.git
cd real-time-fund
# 克隆项目,进入文件
dir
查看项目文件夹里是否有Dockerfile文件,如果有,下一步直接构造镜像
docker build -t real-time-fund .
此时,第一个bug出现了,因为我在docker中配置的是阿里云镜像,并且docker镜像默认拉取的是node:22-bullseye,但是阿里云镜像中没有,所以我尝试在Dockerfile文件中把所有node:22-bullseye改写成node:18-alpine(两个FROM命令),然后再次尝试拉取镜像,注意,再次拉取镜像之前,最好清一下docker之前的构建缓存,否则依旧可能导致失败。 清缓存并且再构建:
docker build --no-cache -t real-time-fund .
这次构建镜像成功了,但是第二个bug出现了,因为next.js要求node版本大于20.9.0,因为我们把node版本降级成了18,所以需要把dockerfile文件中的18改成20。 然后重复上个指令,清除缓存再构建。
此时又发生了网络错误,气得我把docker desktop中的镜像源改了
{
"registry-mirrors": [
"https://docker.mirrors.ustc.edu.cn",
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
更改完成后,记得重启docker desktop
再次拉取镜像:
docker pull node:20-alpine
此时,终于成功拉取了node镜像
构建成功后,运行容器即可:
docker run -d -p 3000:3000 --name fund-app real-time-fund
最后进入端口就好了,如果需要长期运行,设置自动重启就行。