用docker运行项目
背景:因为有两个不同node版本的项目要穿插进行,每次运行都要node8和node14互相切换,有一个办法是把一个项目放到docker里运行
1. 将docker-compose.yml文件放到项目根目录下(根目录:D:\project\kxb_back)
docker-compose.yml代码:
version: "3" services: app: image: node:10 working_dir: "/app" ports: - "8080:8080" volumes: - ".:/app" entrypoint: ["npm", "run", "dev"] redis: image: redis:alpine
到项目根目录下执行:
docker compose up -d //通过提前编写好的yml 文件在当前宿主机上创建或者重新创建容器,以后台的方式运行容器
2. 然后进入docker桌面软件,将两个服务都启动:
已经有两个服务,然后打开kxb-back-app-l的cli,运行npm i ,安装依赖包
3.打开kxb_back_redis_l的cli,输入:
redis-cli
config set requirepass zhuhuakeji2016 //更加项目代码中的redis密码,设置docker的镜像docker的密码
再讲本地代码中连接redis的地址改成连接docker中的地址:
4.两个服务都运行成功后,在浏览器打开http://localhost:8080,项目运行起来了。
另外:如果有特殊情况,kxb-back-app-l启动报错:
Cannot find module 'shelljs/global '
则去项目根目录运行:
docker run --rm -it -w /app -v .:. node:10 npm i
安装成功后运行:
docker compose up -d
kxb-back-app-l就可以成功启动起来了。