Vue3 + Docker + Nginx 完整部署流程

  1. 以 vue 项目为例,首先搭建一个vue项目

    powershell 复制代码
    pnpm create vue@latest
  2. 运行项目后随便在页面中输出点东西,然后打包 vue,打包之后的文件将会在项目根目录下的dist 目录下

    powershell 复制代码
    npm run build
  3. 在项目根目录下新建一个nginx的配置文件,文件名叫default.conf,文件内容如下

    • 服务器端监听 80 端口;
    • 服务器名为 localhost;
    json 复制代码
    server {
        listen 80;
        server_name localhost;
    
        location / {
            root /usr/share/nginx/html;
            index index.html index.htm;
        }
    
    
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root /usr/share/nginx/html;
        }
    }
  4. 在项目的根目录下创建 Dockerfile 文件,文件内容如下

    • 第一行:基于nginx的最新镜像构建
    • 第二行:将vue 打包后的 dist 文件夹拷贝到镜像的/usr/share/nginx/html/
    • 第三行:将本地的nginx的配置文件替换掉容器的 nginx 的配置文件
    json 复制代码
    FROM nginx:latest
    COPY dist/ /usr/share/nginx/html/
    COPY default.conf /etc/nginx/conf.d/default.conf
  5. 构建镜像:在项目目录下打开终端,在终端中执行下面的命令。

    • 构建的镜像名为my-vue3-image
    • . 表示Dockerfile文件所在的位置,即当前文件夹下
    powershell 复制代码
    docker build -t my-vue3-image .
  6. 执行构建镜像的命令之后可以在镜像列表中看到对应镜像名称,可以用如下命令查看所有镜像

    powershell 复制代码
    docker images
    # 或者,两者选其一即可
    # docker image ls
  7. 在容器中运行项目镜像,在终端中执行如下命令

    • -d:后台运行容器
    • -p 8080:80:将宿主机(自己的电脑)的8080端口映射到容器的80端口
    • --name my-vue3:容器名字叫 my-vue3
    • my-vue3-image:用 my-vue3-image 镜像创建容器
    powershell 复制代码
    docker run -d -p 8080:80 --name my-vue3  my-vue3-image
    • 命令等同于图片
  8. 容器跑起来后,在浏览器输入localhost:8080 可以看到相关的页面

相关推荐
工业一体机老司机4 小时前
Docker部署工控机采集服务 Compose编排与开机自启
运维·docker·容器
miaobinfei10 小时前
docker拉取dify镜像,执行docker compose up -d 报错
运维·docker·容器
kobe_OKOK_10 小时前
docker compose命名卷 映射到宿主机的路径
运维·docker·容器
晨陌y15 小时前
Flare自托管导航页教程:Docker部署、多用户、API与公网访问
运维·docker·容器
梅孔立18 小时前
Docker 容器网络不通:Tomcat 无法解析 MySQL、Nginx 无法反代 Tomcat 的生产级排查与治理
网络·docker·tomcat
螺蛳粉 螺蛳粉1 天前
第 05 篇:etcd 深入:Raft 共识、watch 机制与快照备份恢复实战(底座认知 05)
docker·云原生·容器·kubernetes·etcd·分布式存储·kube-apiserver
PellyKoo1 天前
【docker】cifs卷改smb密码后容器起不来的解决方法
运维·docker·容器
时早玖沐1 天前
放弃 QQ 官方机器人:用 SnowLuma + AstrBot 自建 QQ 机器人
docker·开源·agent
阿标在干嘛1 天前
容器编排的“场景适配”:我们为什么在部分服务中回归了Docker Compose?
运维·docker·容器
枫叶轻语1 天前
【Nginx 从入门到实战 09】前后端统一入口:部署页面与接口的完整配置
nginx·全栈