Dockerfile部署Vue项目

博客介绍了Vue项目基于Nginx和Docker的部署流程。先安装Nginx,拉取其最新镜像并运行容器;接着打包Vue项目,编译后生成静态文件;然后在Linux空目录构建Dockerfile,设置基础镜像并复制文件;最后构建镜像、生成容器,若容器停止则启动,可通过指定地址访问。
  1. 安装Nginx
    部署Vue项目依赖Nginx,首先拉取Nginx的镜像,这里使用Nginx最新的镜像,然后根据Nginx镜像运行容器。

    docker pull nginx
    # -d参数:容器启动后会进入后台。
    # -p参数:容器的80端口映射到本机的4030端口。
    docker run --name nginx -d -p 4030:80 nginx
    

    在这里插入图片描述

  2. 打包Vue项目
    编译项目,编译完成之后,在项目的根目录下面就会生成一个dist-production文件夹,里面都是一系列的静态文件。

    npm run build
    

    在这里插入图片描述

  3. 构建Dockerfile
    Linux上找个空目录放项目文件和Dockerfile。

    vi Dockerfile
    

    Dockerfile文件内容:

    设置基础镜像,这里使用最新的Nginx镜像,前面已经拉取过了。将dist-production文件中的内容复制到 /usr/share/nginx/html/这个目录下面。

    FROM nginx
    COPY dist-production/ /usr/share/nginx/html/
    
  4. 构建镜像

    # -t参数:指定image文件的名字,后面还可以用冒号指定标签。如果不指定,默认的标签就是latest。
    # .:表示Dockerfile文件所在的路径,是当前路径,所以是
### 配置 Vue 项目使用 Nginx Proxy Manager 在部署 Vue 项目时,使用 **Nginx Proxy Manager** 是一种便捷的方式,它可以提供图形化界面来配置反向代理和 SSL 证书,而无需手动编辑 Nginx 配置文件。以下是具体配置步骤: #### 1. 构建 Vue 项目部署之前,确保 Vue 项目已经完成构建。通常使用以下命令进行打包: ```bash npm run build ``` 该命令会生成一个 `dist` 文件夹,其中包含静态资源文件,这些文件将被部署到 Nginx 容器中。 #### 2. 创建 Nginx 容器并部署 Vue 项目 使用 Docker 构建一个包含 Vue 项目的 Nginx 镜像。在 Dockerfile 中,需要将 `dist` 文件夹复制到 Nginx 的默认静态资源目录中,并配置 Nginx 服务: ```Dockerfile FROM nginx:latest COPY ./dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/nginx.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` 构建镜像并启动容器: ```bash docker build -t vue-app . docker run -d -p 8080:80 vue-app ``` 此时 Vue 项目部署到本地 Nginx 容器,并可以通过 `http://localhost:8080` 访问。 #### 3. 配置 Nginx Proxy Manager 在 Nginx Proxy Manager 中,可以将本地运行的 Vue 项目通过反向代理暴露到公网。具体配置如下: - **创建代理主机** - 登录 Nginx Proxy Manager 管理界面。 - 在“Proxy Hosts”页面点击“Create Proxy Host”。 - 填写以下信息: - **Domain Name**: 输入用于访问 Vue 项目的域名(如 `vue.example.com`)。 - **Scheme**: 输入 `http`。 - **Forward Hostname/IP**: 输入运行 Vue 项目的容器 IP 或 `host.docker.internal`(如果容器运行在本地)。 - **Forward Port**: 输入 `8080`。 - **Block Common Exploits**: 勾选以增强安全性。 - **Websockets Support**: 勾选以支持 WebSocket。 - **Preserve Host Header**: 勾选以保留原始 Host 头。 - **配置 SSL 证书** - 如果需要启用 HTTPS,可以在“SSL”选项卡中选择或生成 SSL 证书。 - 启用 HTTPS 后,Vue 项目将通过 `https://vue.example.com` 访问。 - **保存并测试** - 保存配置后,通过浏览器访问配置的域名,验证 Vue 项目是否成功部署。 #### 4. Nginx 反向代理配置 在某些场景中,可能需要配置反向代理以将 Vue 项目的 API 请求转发到后端服务。例如,将 `/api` 开头的请求代理到目标服务器: ```nginx location /api { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://192.168.x.xxx:xxxx/szIntranetweb; proxy_redirect default; } ``` 此配置可直接在 Nginx Proxy Manager 的高级设置中添加,以实现前后端分离架构下的请求转发功能。 #### 5. 配置静态资源缓存 为了提升性能,可以在 Nginx 配置中设置静态资源缓存策略。例如,为 Vue 项目中的图片、CSS 和 JavaScript 文件设置缓存时间: ```nginx location ~ \.(jpg|jpeg|png|gif|ico|css|js)$ { expires 7d; add_header Cache-Control "public, no-transform"; } ``` 此配置可提升页面加载速度,并减少服务器请求压力。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值