Dockerfile项目实战-单阶段构建Vue2项目

news/2025/4/22 2:36:10

单阶段构建镜像-Vue2项目

1 项目层级目录

以下是项目的基本目录结构:
在这里插入图片描述

2 Node版本

博主的Windows电脑安装了v14.18.3的node.js版本,所以直接使用本机电脑生成项目,然后拷到了 Centos 7 里面

# 查看本机node版本
node -v

在这里插入图片描述

3 创建Vue2项目

# 全局安装 Vue CLI 工具
# 
# 参数说明:
# -g:表示全局安装,这样 Vue CLI 可以在系统任何地方使用
# @vue/cli:Vue CLI 的包名,这是 Vue.js 官方提供的项目脚手架工具
# 
# 作用:
# Vue CLI 是一个命令行工具,用于快速创建和管理 Vue.js 项目
# 安装完成后,可以通过 `vue` 命令来创建项目、添加插件等
npm install -g @vue/cli

在这里插入图片描述

# 使用 Vue CLI 创建一个新的 Vue.js 项目
# 
# 参数说明:
# my-vue-project:项目名称,将创建一个名为 my-vue-project 的目录
# 
# 作用:
# 这条命令会启动 Vue CLI 的交互式流程,帮助你创建一个新的 Vue 项目
# 在交互过程中,你可以选择预设配置或手动选择需要的功能(如 Vue Router、Vuex 等)
# 
# 注意:
# 如果你不想进入交互模式,可以直接运行:
# vue create -d my-vue-project
# 这会使用默认配置快速创建项目
vue create my-vue-project

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4 本地启用测试

# 进入本地项目目录
cd D:\MySelfStudy\Vue\my-vue-project
# 构建vue项目
npm run build
# 启动vue项目
npm run serve
# 浏览器测试
http://localhost:8080/

在这里插入图片描述

5 将项目copy的Centos7里面

# 创建项目文件夹,并将项目拷进去
mkdir my-vue-project

在这里插入图片描述

6 创建Dockerfile文件

# 创建Dockerfile文件
vim Dockerfile

Dockerfile文件内容

# 使用官方 Node.js 镜像作为基础镜像
FROM node:14.18.3-alpine# 设置工作目录
WORKDIR /app# 复制 package.json 和 package-lock.json(或 yarn.lock)
COPY package*.json ./# 安装依赖
RUN npm install# 复制项目源代码
COPY . .# 构建 Vue 项目
RUN npm run build# 安装 serve 用于静态文件服务
RUN npm install -g serve# 暴露端口
EXPOSE 8080# 启动应用
CMD ["serve", "-s", "dist", "-p", "8080"]

在这里插入图片描述

7 构建镜像

# 构建镜像
docker build -t my-vue-project:1.0 .

在这里插入图片描述

8 运行镜像

# 构建镜像
docker run -d -p 8080:8080 my-vue-project:1.0

在这里插入图片描述

9 浏览器测试

# 浏览器测试
http://localhost:8080/

在这里插入图片描述


https://dhexx.cn/news/show-5497324.html

相关文章

Visio绘图工具全面科普:解锁专业图表绘制新境界[特殊字符]

Visio绘图工具全面科普:解锁专业图表绘制新境界🌟 在信息爆炸的时代,清晰、直观地呈现复杂信息变得至关重要。无论是绘制流程图📊、组织结构图👥,还是规划网络拓扑🖧,一款强大的绘图…

AIDL 中如何传递 Parcelable 对象

目录 1. 直接在 AIDL 中定义 Parcelable 对象2. 自定义 Parcelable 对象的传递3. 以 Rect 类为例的 Parcelable 实现4. 注意安全性5. 小结1. 直接在 AIDL 中定义 Parcelable 对象 背景说明 从 Android 10(API 级别 29)开始,AIDL 允许直接在 .aidl 文件中定义 Parcelable 对…

JAVA:线程的状态与生命周期

java中的任何对象都有一个生命周期,线程也有它的生命周期。 在线程的整个生命周期中,线程可能会处于不同的运行状态;在线程的整个生命周期中一共有以下几种状态:New(新建状态)、Runnable(可运行…

Token安全存储的几种方式

文章目录 1. EncryptedSharedPreferences示例代码 2. SQLCipher示例代码 3.使用 Android Keystore加密后存储示例代码1. 生成密钥对2. 使用 KeystoreManager 代码说明安全性建议加密后的几种存储方式1. 加密后采用 SharedPreferences存储2. 加密后采用SQLite数据库存储1. Token…

组合数哭唧唧

前言&#xff1a;手写一个简单的组合数&#xff0c;但是由于长期没写&#xff0c;导致一些细节没处理好 题目链接 #include<bits/stdc.h> using namespace std; #define endl "\n"#define int long longconst int N (int)2e510; const int Mod (int)1e97;int…

WPF GDI 画 晶圆Mapping图

效果图 UI代码 <Window x:Class="WpfWaferMapping.Window3"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expre…

【Qt】Qt 信号与槽机制全解析

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;QT 欢迎大家点赞收藏评论&#x1f60a; 目录 一.信号和槽概述信号的本质槽的本质 信号和槽的使⽤连接信号和槽查看内置信号和槽通过 Qt Creator ⽣成信号槽代码⾃定义信号和槽带参数的信号和槽信…

【深入C++多态:基于消息解析器的设计、实现与剖析】

深入C多态&#xff1a;基于消息解析器的设计、实现与剖析 前言多态代码示例代码结构C多态的核心知识点多态的底层机制深入剖析多态的设计模式总结 前言 在C面向对象编程中&#xff0c;多态&#xff08;Polymorphism&#xff09;是实现灵活性和扩展性的核心特性&#xff0c;允许…

大数据学习(106)-hivesql函数

&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4dd;支持一…

rabbitmq引入C++详细步骤

1. 安装RabbitMQ服务器 在Windows上&#xff1a;先安装Erlang&#xff0c;再安装RabbitMQ服务器。安装完成后&#xff0c;可通过访问http://localhost:15672来检查RabbitMQ服务器是否正常运行&#xff0c;默认的用户名和密码是guest/guest。 在Linux上&#xff1a;可使用包管理…