node+vue项目docker、docker compose及docker swarm集群模式启动

Docker部署Vue项目的完整指南与实践 容器化技术通过Docker实现环境一致性、快速部署和资源隔离,成为现代前端工程部署的首选方案。Docker利用镜像机制封装应用及其依赖,配合Nginx等Web服务器实现高效静态资源托管。在Vue项目部署场景中,多阶段构建能显著减小镜像体积,而合理的Nginx配置可解决history路由等常见问题。本文详细介绍从Dockerfile编写到CI/CD集成的全流程,包含镜像优化、健康检查等进阶技巧,帮助开发者掌握生产级Vue应用容器化部署方案。 阅读详情

 一下介绍基于node独立运行的vue前段项目Dockerfile 配置及启动

模式一、docker直接启动

项目根目录下创建Dockerfile文件。

#指定依赖镜像为node并制定版本,2020-1-7最新未定版本为12.13.1
FROM docker.io/node:12.13.1

# Create app directory
WORKDIR /usr/src/vueappdev

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
# 同步时区设置
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#设置node源地址为淘宝源
RUN npm config set registry http://registry.npm.taobao.org/
#无需每次运行,灵活使用
RUN npm install

# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .
#指定暴露端口号,此处应与项目配置中的端口号一直
EXPOSE 8080
#指定项目运行指令为 npm run prod
CMD [ "npm", "run", "prod" ]

运行命令:

#在项目根目录下执行一下命令
#生成docker镜像,镜像名为erms/web,注意命令结尾有个点
docker build -t erms/web .
#运行erms/web镜像,绑定容器的 8080 端口,将其映射到本地主机 127.0.0.1 的 9527 端口上,对外访问使用9527。
docker run -p 9527:8080 --name ermsweb -d erms/web


命令释义:
例如:docker run -itd -p 9527:8080 -v /user/local/ermsweb:/workspace --name ermsweb --restart=always erms/web

这里的/user/local/ermsweb是你的vue项目路径
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
-it的意思是,用一个终端跟容器进行交互;
-p: 端口映射,格式为:主机(宿主)端口:容器端口
-d: 后台运行容器,并返回容器ID;
--name="": 为容器指定一个名称;
--restart=always   表示在容器退出时总是重启容器;
具体解释详见菜鸟教程:
https://www.runoob.com/docker/docker-run-command.html

docker run -p 9527:8080 --name ermsweb -d erms/web命令将镜像运行起来之后,我们就可以通过宿主机的IP:9527来访问项目了。本地访问即可使用127.0.0.1:9527,云服务器可以用www.xxx.com:9527访问。

模式二、docker-compose

项目根目录下或任意位置创建docker-compose.yml

version: '3'

services:
  dev:
    image: erms/web
    ports:
      # 9527绑定宿主机端口,对外访问能使用。8080绑定docker容器端口,即项目端口
      - "9527:8080"
    #    restart: always
    volumes:
      - /user/local/erms:/workspace
    stdin_open: true
    tty: true

切换到docker-compose.yml所在目录(或者执行命令是指定compose文件位置),执行命令。

#生成镜像
docker build -t erms/web .
#docker compose命令启动
docker-compose up -d

访问方式与模式一相同。

模式三、docker集群docker swarm/stack模式运行

项目根目录下或任意位置创建docker-compose-ermsweb.yml

version: '3.3'

services:
  ermsweb:
    hostname: ermsweb
    image: erms/web
    ports:
      - target: 8080
        published: 9527
        mode: host
    labels:
      "type": "2"
    volumes:
      - /ceph/erms/ui/ERMS_UI:/usr/share/nginx/html
    networks:
      - edoc2_default
    deploy:
      # placement:
      #   constraints:
      #     - node.labels.nodetype == InDrive
      # 设置集群个数,这里以单机为例
      replicas: 1
      restart_policy:
        condition: on-failure
volumes:
  esdata:
    driver: local

networks:
  edoc2_default:
    external:
      name: indrive_edoc2
#生成镜像,镜像名称应与compose文件中的一致
docker build -t erms/web .
#创建docker集群服务,-c指定compose文件的位置,指定集群名称为erms
docker stack deploy -c /home/erms/compose/singelton/docker-compose-ermsweb.yml erms

访问方式相同。

集群模式下更新移除服务等操作请移步:https://blog.youkuaiyun.com/CaptainJava/article/details/103869834

 

Docker Compose 声明式编排实战:解决多容器开发环境一致性难题 Docker Compose 是面向多容器应用开发的轻量级声明式编排工具,其核心原理是通过 YAML 配置文件描述服务依赖、网络拓扑、健康检查与启动顺序等运行时契约,替代易错的手动 docker run 命令流。它不追求功能复杂度,而是聚焦开发阶段最关键的确定性问题——确保本地、CI、同事机器上‘每次都能以完全相同的方式跑起来’。技术价值体现在环境可版本化、可 diff、可回滚,并天然支持 service orchestration 和 development environment consistency 阅读详情

相关推荐

Wukong-AICRM Docker一键部署:半小时搞定Java+Vue智能CRM系统

在业务系统选型与快速部署的实践中,我们常常面临一个矛盾:一方面希望系统功能强大、技术栈现代;另一方面又受限于部署环境的复杂性,尤其是当项目涉及前后端分离、数据库、中间件等多个组件时,手动部署和联调会耗费大量时间。Wukong-AICRM 作为一个基于 Java + Vue 的智能对话式客户关系管理系统,其 Docker 一键安装方案完美地解决了这一痛点。本文将为你完整拆解 Wukong-AICRM 的 Docker 安装全流程,从环境准备、镜像拉取、容器启动到访问验证,每一步都附带详细的命令、配置说明和排错

weixin_30753873的博客 381

使用docker-compose部署node服务和db

初始化了一个koa2的web服务,主要用到mysql和redis。下面就用docker来部署。上篇讲过可以使用docker-compose来编排容器,主要用到三个镜像node、mysql、redis。最后附上改项目github地址。 首先我们先编写Dockerfile文件,可以启动web服务。(具体命令不明白的可以看上篇文章) #基于node12 FROM node:12-alpine #镜像标签 LABEL author = "18769836465@163.com" LABEL version =

蛋蛋的博客 1524

Podman Compose:无需 root 权限的 Docker Compose 兼容编排方案

容器编排是现代应用开发与交付的核心能力,其本质是通过声明式配置实现多容器服务的自动化部署、网络互联与生命周期管理。底层依赖于容器运行时对命名空间、cgroups 和镜像分层等 Linux 内核特性的封装。随着最小权限原则和零信任架构成为企业安全基线,传统 Docker 的 root 依赖守护进程(dockerd)暴露出权限集中、审计困难、多租户隔离弱等工程瓶颈。Podman Compose 作为原生 rootless 编排工具,复用标准 docker-compose.yml 语法,依托 Podman 的用户

weixin_30307921的博客 381

解决Docker没有做端口映射问题

解决Docker没有做端口映射问题 通过Xshell创建隧道 网页输入 localhost:8081即可访问

YYDS_emmm的博客 1077

Spring Boot+Vue项目Docker容器化部署实践

容器化技术通过Docker镜像实现应用与运行环境的标准化打包,解决了开发与生产环境差异的经典问题。Docker基于Linux命名空间和cgroups实现资源隔离,配合Compose工具可实现多服务编排。在微服务架构下,Spring Boot作为Java主流框架与Vue前端组合时,Docker能提供一致的运行环境、快速部署能力和资源隔离优势。本文以实际项目为例,详细演示如何通过多阶段构建优化镜像、配置Nginx反向代理、实现数据库容器化等完整部署方案,涵盖从开发到生产的全流程实践。

weixin_42648844的博客 263

Wukong AICRM Docker部署指南:从零搭建智能CRM系统

如果你正在寻找一个能快速上手的智能 CRM 系统,并且希望部署过程足够简单,那么 Wukong AICRM 结合 Docker 的方案,很可能是你当前的最优解。 很多开发者对 CRM 系统的印象还停留在复杂、笨重、需要大量定制开发的阶段。Wukong AICRM 的出现,试图用“智能对话式”和“Java + Vue 全栈”这两个标签来打破这种刻板印象。它不仅仅是一个管理客户信息的后台,更强调通过智能化的交互来提升销售和客服效率。然而,一个再好的开源项目,如果部署过程充满坎坷,也会让大多数尝试者望而却步。 这

weixin_33892359的博客 379

docker-compose部署集群

docker-compose的基本使用,以及部署集群minio,elastic,kibana

是晨晨啊! 522

视觉惯性SLAM系列——ORB-SLAM3的整体介绍及各个线程的功能(五)

跟踪线程(Tracking Thread)作用:负责处理每一帧图像,进行相机位姿的估计和定位。它首先执行与前一帧图像的特征匹配,然后通过仅运动(motion-only)BA(Bundle Adjustment)优化位姿。如果跟踪失败,它会尝试在所有地图中进行重定位。此外,跟踪线程还负责决定何时插入新的关键帧,以及何时将关键帧从局部地图中移除。详细介绍见局部建图线程(Local Mapping Thread)作用:管理局部地图,向活跃地图添加关键帧和点,移除多余的关键帧和点。

曾经也曾立志 1004

docker 单节点服务编排部署指南(docker-compose)

docker 单节点服务编排部署指南(docker-compose)

墨鸦的博客 7457

Qt Design Studio 入门指南:从零开始打造炫酷UI(详细+实用+轻松上手)

本文是Qt Design Studio的详细入门指南,旨在帮助UI设计新手从零开始轻松打造炫酷界面。文章系统介绍了软件的核心概念、安装步骤、主界面解析,并通过创建一个完整的登录界面实例,手把手教学如何拖拽组件、设置属性、添加交互状态与动画。同时,分享了创建自定义组件、管理资源以及提升效率的实用技巧与常见问题解决方案,让读者能够快速上手并应用于实际项目开发。

devops8pract的博客 588

告别理论劝退:用动画和Tanner图轻松理解QC-LDPC的译码原理(BP算法详解)

本文通过动画和Tanner图直观解析QC-LDPC码的BP译码原理,帮助读者轻松理解802.11ac协议中的编译码过程。文章详细展示了QC-LDPC的结构之美、BP算法的动态信息流动以及LLR的视觉化解读,并对比了硬判决算法的性能差异,为开发者和研究者提供了实用的可视化工具开发建议。

weixin_30411239的博客 492

一文学会用 Docker 和 Docker Compose 部署 Node.js 微服务

后端业务逻辑一般比较复杂,全堆在一个 http 服务里不太现实,所以基本都会用微服务架构来开发了。比如这样:把不同模块的业务逻辑拆分到不同微服务里,然后它们和主服务通过 tcp 通信,最终由主服务返回 http 响应。比如我用 nest 开发的一个微服务项目(具体开发过程见上篇文章):两个微服务分别监听了 8888 端口和 9999 端口:用 yarn start 把它们跑起来:主服务里注册了这两...

奇舞周刊 1355

CocosCreator | 自定义启动页之H5

01 效果对比 默认启动页: 自定义启动页: 02 启动页存在的意义 我们在 creator 中的开发的游戏都是基于 cocos engine,所以在展示我们的游戏之前,是必须要先加载 cocos engine,然后才是我们自己的业务代码 流程图如下: 而构建完成后未精简的 cocos engine 代码为 1.9M 如果再加上物理相关代码的话,一共是2M 别忘了,我们自己的首场景也要加载过程哦 所以,从游戏启动,到真...

Valiancer 5896

Docker Compose 容器编排实战:从多服务定义到生产环境部署

容器化技术通过将应用及其依赖打包成标准单元,实现了环境一致性与快速部署。其核心原理在于利用操作系统级虚拟化,实现资源隔离与高效利用。在微服务架构中,多容器应用的编排成为关键挑战,这正是 Docker Compose 的技术价值所在。它通过声明式的 YAML 配置文件,统一管理多个关联容器的生命周期、网络与存储,将复杂的 docker run 命令集简化为单一指令。在开发、测试及单机生产等应用场景中,Docker Compose 能显著提升从服务定义、依赖管理到一键启停的运维效率。本文以 docker-com

weixin_34162228的博客 470

Windows 高精度计时器:QueryPerformanceCounter 原理、陷阱与最佳实践

本文深入解析Windows高精度计时器QueryPerformanceCounter(QPC)的工作原理、常见陷阱及最佳实践。QPC通过读取硬件计时器(如TSC)实现微秒级精度,适用于游戏开发、音视频处理等高性能场景。文章详细探讨了多核同步、动态频率调整等挑战,并提供了优化代码示例和性能对比数据。

weixin_33391446的博客 271

Android 14.0 系统设置显示主菜单添加屏幕旋转菜单实现旋转屏幕功能

在14.0的系统rom定制化开发中,在对系统设置进行定制开发中,有产品需求要求增加 旋转屏幕功能的菜单,就是在点击旋转屏幕菜单后弹窗显示旋转0度,旋转 90度,旋转180度, 旋转270度针对不同分辨率的无重力感应的大屏设备的屏幕旋转功能的实现, 接下来就来分析实现这个功能

安卓兼职framework和app工程师的博客 1311

Docker 从入门到实战:容器、镜像与 Compose 全攻略

10 分钟速通 Docker 核心概念、常用命令、Dockerfile 构建及 Compose 多容器编排,带你轻松部署前后端 + 数据库完整项目。

m0_74916313的博客 1272

Ego Planner规划算法(下)——Ego Planner程序框架

本系列文章用于学习记录Ego-Planner规划算法的相关内容,本系列文章是在在Fast Planner规划算法系列文章的基础上,展开对Ego Planner的相关介绍,主要包括Ego Planner算法流程和程序框架两部分,主要学习资料是深蓝学院的移动机器人运动规划课程

慕羽★的博客 7259

基于Docker的全栈应用启动器:从Nexu镜像看现代化Web部署范式

容器化技术,特别是Docker,已成为现代软件开发和部署的核心基础设施。其原理是通过操作系统级虚拟化,将应用及其依赖打包成标准、轻量的镜像,实现环境一致性与快速分发。这一技术价值在于极大简化了从开发到测试、生产的全流程,提升了部署效率和系统可移植性。在Web应用开发领域,全栈应用启动器(Application Starter)正是容器化与预配置理念融合的典型应用场景。它通过一个预置了前后端框架、数据库及工具链的Docker镜像,为开发者提供开箱即用的项目原型,将复杂的初始化工作标准化。本文以Nexu镜像为例

weixin_30443813的博客 309

SAP Word 模板与 ABAP XML 数据流合并机制深度解析

Office Open XML 标准把一个.docx拆分成多个部件(document.xml、customXml\item1.xml 等),天然支持命名空间与 XPath;Word 在渲染时,会扫描<w:sdt>(结构化文档标签)与来确定绑定关系;在 ABAP 端,通过简单字符串替换与 XSLT 变换即可完成数据灌入,无需 COM Automation,安全且易于调试。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 372

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Docker Compose 实战指南:从手动 run 到声明式服务编排

Docker Compose 是面向多容器开发的声明式编排工具,其核心原理是将服务依赖、网络、卷、健康检查等基础设施要素抽象为可版本化、可协作的 YAML 配置,实现环境一致性与开发效率的统一。相比 Shell 脚本,它提供依赖就绪控制(如 condition: service_healthy)和内置 DNS 网络;相比 Kubernetes,它专注本地开发原生体验,避免过早引入调度与扩缩容复杂性。技术价值体现在降低新人上手成本、保障测试/开发环境行为一致、支撑 CI 集成测试流水线,并为向生产级编排平台平

weixin_33827731的博客 484

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

从零到一:基于Docker Compose部署开源AI-CRM系统实战指南

容器化技术是现代软件开发和部署的核心实践,它通过将应用及其依赖打包成标准化的镜像,实现了环境隔离与一致性。Docker作为主流的容器引擎,其核心原理是利用操作系统级虚拟化,为应用提供轻量、可移植的运行环境。结合Docker Compose工具,开发者可以通过声明式配置轻松编排多服务应用,这极大地提升了复杂系统的部署效率和可维护性,是微服务架构和持续交付流水线中的关键技术。在客户关系管理(CRM)等业务系统领域,容器化部署能显著降低环境配置复杂度,加速开发测试流程。本文将以一个集成了大语言模型(LLM)能力的

weixin_30394669的博客 297

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Spring Boot与Vue项目容器化部署实战指南

容器化技术通过Docker实现环境标准化,解决开发、测试与生产环境差异问题,是现代Web应用部署的核心方案。其原理基于操作系统级虚拟化,将应用及其依赖打包成轻量级、可移植的容器镜像。在Java生态中,Spring Boot结合Docker可快速构建微服务架构,而Vue等前端框架通过Nginx容器实现高效静态资源托管。典型应用场景包括持续集成/持续部署(CI/CD)、云原生应用开发等。本文以Spring Boot+Vue技术栈为例,详解多阶段构建、Docker Compose编排等工程实践,特别针对镜像瘦身、

weixin_33326218的博客 301

Docker容器化部署AI应用:从环境隔离到一键启动的实践指南

如果你正在寻找一个开箱即用的AI客户关系管理系统,并且希望它能像部署一个网站应用那样简单,那么“悟空AICRM”可能就是你最近在关注的那个名字。但当你兴致勃勃地打开它的部署文档,却发现需要面对Python环境、各种依赖包、数据库配置等一系列繁琐步骤时,热情可能瞬间被浇灭一半。这正是许多开发者和中小团队在尝试部署新兴AI应用时遇到的典型困境:想法很美好,但第一步的“环境搭建”就足以劝退大多数人。 这篇文章要解决的,正是这个核心痛点。我们将彻底绕开传统复杂的源码部署方式,使用Docker容器化技术,为你呈现一份

weixin_34015336的博客 630

从源码到部署:手把手教你编译并定制Swirl Docker管理平台

Swirl是一款专注于Swarm集群的Docker Web管理平台,通过直观的界面帮助用户轻松管理Docker容器、服务、网络和存储。本文将带你从源码开始,一步步完成Swirl的编译、定制和部署,让你快速拥有一个功能强大的Docker管理工具。 ## 准备工作:环境与依赖 在开始编译Swirl之前,确保你的系统已安装以下工具: - Git(用于克隆代码仓库) - Go 1.17+(后端编译环境

gitblog_01023的博客 349

Docker从入门到实战:全面解析容器化技术

:随着Kubernetes成为容器编排标准(如Docker Desktop内置K8s),云原生技术栈将进一步整合Service Mesh、Serverless等架构。掌握Docker底层原理及生态工具,仍是开发者进阶云原生领域的核心技能。

andyyah晓波的博客 584
上一篇: node+vue之动态加载配置文件
下一篇: docker swarm集群更新服务流程
grootblockchain
博客等级 码龄11年 55粉丝 101原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值