Docker镜像+nginx 部署 vue 项目

1、打包vue项目html

  在开发完的vue项目输入以下命名,打包生成dist文件夹vue

yarn build / npm run build

  此时根目录会多出一个文件夹:dist文件夹,里面就是咱们要发布的东西。nginx

  若是将该dist目录整个传到服务器上,部署成静态资源站点就能直接访问到该项目。vue-router

2、获取nginx 镜像docker

  nginx 是一个高性能的HTTP和反向代理服务器,此处咱们选用 nginx 镜像做为基础来构建咱们的vue应用镜像。npm

  在终端输入:浏览器

docker pull nginx

  便可以获取到nginx镜像。服务器

  Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。 镜像不包含任何动态数据,其内容在构建以后也不会被改变。app

   在终端输入以下命令,能够看到nginx的镜像性能

docker image ls

  镜像结果以下所示:

3、建立 nginx config配置文件

   在项目根目录下建立nginx文件夹,该文件夹下新建文件default.conf

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

   注意⚠️:若是vue-router使用的是history模式,try_files $uri $uri/ /index.html;  很是重要!!!

  由于咱们的应用是单页客户端应用,若是后台没有正确的配置,当用户在浏览器访问地址时,就会返回404。

  因此须要在服务端增长一个覆盖全部状况的候选资源,若是URL匹配不到任何静态资源,则应该返回同一个index.html页面,这个页面就是你app依赖的页面。

  上面的文件定义了首页的指向为 /usr/share/nginx/html/index.html, 因此咱们能够一会把构建出来的index.html文件和相关的静态资源放到/usr/share/nginx/html目录下。

4、建立 Dockerfile 文件

# 设置基础镜像
FROM nginx
# 定义做者
MAINTAINER lihui <1107136746@qq.com>
# 将dist文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY dist/  /usr/share/nginx/html/
#用本地的 default.conf 配置来替换nginx镜像里的默认配置
COPY nginx/default.conf /etc/nginx/conf.d/default.conf

5、基于该Dockerfile构建vue应用镜像

  运行以下命令,注意不要少了最后的“ .

docker build -t test .

  -t 是给镜像命名 ,test是生成镜像的名字,. 是基于当前目录的Dockerfile来构建镜像。

  基于vue的镜像就生成好了!

相关文章
相关标签/搜索