受限于node环境的苦恼,写了一个通用的docker-compose脚本。
作用:可灵活切换node版本,一件部署。
操作流程:
- 在node项目(Vue、react)工作目录下创建DockerFile和docker-compose.yml文件
- 在DockerFile中输入对应内容(下面给出,可以固定化)
- 在docker-compose.yml中输入内容(下面给出,也强标注了对应命令)
- 运行docker-compose up -d
详细操作
- 在node项目(Vue、react)工作目录下创建DockerFile和docker-compose.yml文件
- 例如,Vue项目工作目录为:/home/use/workspace/shop,Vue的代码都在shop下,就在shop下创建DockerFile和docker-compose.yml文件
- 注意:工作目录路径中不能有其它特殊字符,-也不行,可以有_
- 在DockerFile中输入对应内容(下面给出,可以固定化)
- 在node后面指定对应node版本号
-
# 需要安装的node的版本 FROM node:14.19.1-alpine3.14 # 将当前目录(dockerfile和docker-compose.yml所在的目录)映射到容器中/www/webl目录下 ADD ./ /www/web # 在容器中创建工作目录 /www/web WORKDIR /www/web
-
- 在node后面指定对应node版本号
- 在docker-compose.yml中输入内容(下面给出,也强标注了对应命令)
- 在command指定要run start还是build
version: '3.8' # docker-compose的版本 services: node: build: context: . # 使用上下文为当前 dockerfile: DockerFile volumes: - ./:/www/web # 把本地目录挂载到虚拟机的/www/web/下 command: sh -c "cd /www/web && npm install && npm start" # 开发调试用npm start,部署改为npm run build ports: - "13001:3000" # 端口映射自定义,13001是宿主机端口,3000是Vue、react的端口 stdin_open: true # 启用输入
- 在command指定要run start还是build
- 运行docker-compose up -d
-
# 在工作目录下(DockerFile和docker-compose.yaml所在目录),执行 # 后台启动 docker-compose up -d # 查看日志 docker-compose logs -f
-