如何使用docker部署vue项目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用docker部署vue项目相关的知识,希望对你有一定的参考价值。

参考技术A 熟悉vue项目的开发朋友应该了解,对于vue项目来说,上线其实就是执行npm run build 命令,然后将build出的dist文件夹上传到服务器上就可以了,对于现在的前后端分离项目来说,就是把dist放到nginxhtml文件夹即可。

上传的过程既可以手动实现,也可以通过jenkins这类在线编译软件,总之,殊途同归。

除了上面两种还有一种现在比较火的部署方式,就是docker部署,当然正如上面说的,docker也是要实现上面的操作,只不过有些差异而已。

针对docker部署需要了解的是,一般我们只需要拉取nginx镜像,把dist文件夹写入镜像即可,不需要去镜像里面执行拉取代码、执行编译、打包等操作。这些操作一般在写入镜像执行。

这样做的目的跟docker的理念是一致的,功能解耦,方便维护,而且对于一些大公司来说,可能还需要将编译后的代码进行扫描等操作,如果在docker镜像内编译的话如果出现错误是不好定位问题的。

那么如何实现docker部署vue项目呢,操作如下参考:

文件目录如下:

在vueProject 根目录下新建Dockerfile文件,注意没有后缀,nginx镜像默认服务器的目录在/usr/share/nginx/html,内容如下:

build项目:

Build完成后会生成dist目录

然后在vueProject根目录下打开命令行执行如下命令生成镜像:

注意最后是一个点,代表在当前目录执行Dockerfile

如果没报错说明执行成功,此时可以在docker镜像列表看到该镜像。

启动镜像:

—name vp 代表自定义启动的镜像名称

-dp 是-d,-p的简写

8088:80 代表在宿主机的8088端口映射镜像的80端口,因为nginx默认的服务器端口就是80

最后就是之前生成的镜像名称。

大功告成。

更多详情:javascript技术分享

Docker 部署前端项目 (vue)

vue 项目架构

Vue 3 + TypeScript + Vite

Docker

Docker是一个虚拟环境容器,可以将开发环境、代码、配置文件等打包到这个容器中然后发布应用。

如何安装

安装 docker 以及一些问题参考博主其它文章最好安装一个 docker desktop (这样就不用记命名敲)

项目目录

babel.config.js
dist
Dockerfile
index.html
Nginx.conf
node_modules
package.json
public
README.md
src
	...
vue.config.js
yarn-error.log
yarn.lock
.eslintrc.js
.prettierrc.js
...

部署项目要准备 Dockerfile 和 nginx.conf 在项目根目录新建文件

Dockerfile 配置

FROM node:latest as builder
WORKDIR /app
COPY package.json
RUN npm install
COPY . .
RUN npm run build
FROM nginx:latest
COPY nginx.conf /etc/nginx
COPY --from=builder /app/dist  /usr/share/nginx/html
  1. WORKDIR: 设置容器内部的工作目录
  2. EXPOSE: 指定运行镜像的容器使用的端口
  3. RUN : 指令 docker 在镜像内执行的命令
  4. FROM :通过 FROM 指定的镜像名称,必须位于第一条非注释指令
  5. ADD 和 COPY: 将文件或目录复制到 Dockerfile 构建的镜像中

Nginx.conf 配置

events 
  worker_connections  1024;

http
  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;
    
  

创建镜像

使用当前目录的 Dockerfile 创建镜像,标签为 vuedocker

docker build -t vuedocker .

用容器启动镜像

1.使用 docker 镜像 frontend:latest 以指定 80 端口映射模式启动容器,并将容器命名为
vuedocker
docker run --name vuedocker -p 80:80 frontend:latest
2. 如安装 docker desktop 可直接在 Images 里面使用 RUN Containers (配置好 Containers name 与PORTS)

两种方式二选一

以上是关于如何使用docker部署vue项目的主要内容,如果未能解决你的问题,请参考以下文章

docker项目部署

Docker 部署前端项目 (vue)

项目部署Vue+SpringBoot前后分离个人博客项目实战部署保姆教程 Linux+docker安装部署启动一条龙教程

Docker搭建部署Node项目

(Docker Nginx) Spring boot+Vue 前后端分离部署 详细完整版

基于Docker-Compose 部署前后端分离单体项目(一)