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 可以看到相关的页面

相关推荐
Vitaliy Kostrov(柯维远)20 分钟前
谁来承担额外工作?CDN 参与者如何协商资源
nginx·缓存·系统架构·开源·cdn
%KT%1 小时前
ubuntu系统部署docker
运维·docker·容器
北城笑笑2 小时前
Server 18 ,Nginx 双服务器 HTTP转HTTPS 代理实战( HTTP 地址换 HTTPS 域名 )
运维·服务器·前端·后端·nginx·http·https
十二同学啊2 小时前
Docker 容器化技术详解:镜像、容器、网络与应用部署设计
网络·docker·eureka
I'mChloe2 小时前
不再逐台装Docker:我用Ansible Playbook批量统一服务器环境
服务器·docker·ansible
江湖有缘2 小时前
Docker实战 | 使用Docker部署Readeck书签管理工具
java·docker·eureka
Zenova EdgeOS3 小时前
Linux Nginx 反向代理实战:工业边缘 API 接入与安全加固
linux·nginx·安全·边缘计算·工业网关
十二同学啊3 小时前
Python FastAPI 项目使用 Docker 部署并映射端口(完整教程)
python·docker·fastapi
flytalei3 小时前
Kubernetes健康检查探针
云原生·容器·kubernetes
java_logo4 小时前
Docker 部署 Halo:轻松搭建开源个人博客
docker·容器·开源·博客·开源博客·halo·轩辕镜像