vue+nginx+docker 的前端项目部署方案

前后分离的项目,前端工程师就会面临一个问题:如何部署前端项目?。

因为我用的是vue,就在此基础上谈谈我的部署方案。

首先想到的就是将项目打包后用nginx发布出来就好了。

为什么不直接npm run dev?且不说性能问题,关键是在window上开发的代码放到linux上不一定能跑起来啊。npm install? 不存在的,因为我要部署的环境基本都是内网。
也是因为部署环境基本是内网,也没有考虑直接在服务器上安装nginx的方案。(关间是太懒,不想换一个地方就安装一次nginx啊)。所以看上了咋们这后端已经‘如日中天’的docker。

好了, 废话不多说了。直接来吧

准备工作

os: centos 7
docker-ce(-ce就是社区版,不要钱~ ~)。

安装docker

    yum install docker

一般就安装完成了,就是这个easy有木有。(内网环境的docker以后再来说,主要是后端小伙伴已经吧docker装上啦~)
启动一下服务

   systemctl start docker

安装nginx镜像

   docker pull nginx
vue+nginx+docker 的前端项目部署方案_第1张图片
2019-04-28-2

然后查看一下你的镜像

    docker images
vue+nginx+docker 的前端项目部署方案_第2张图片
2019-04-28-3

好了, 现在你的服务器上就有了一个nginx的docker镜像。

部署项目

把你的项目打开,ls一下啦。


2019-04-28-4

项目怎么来的就不说了,你会发现你项目里少了两个东西,一个是Dockerfile,另一个是dist。
Dockerfile没有的话好办,直接创建一个

    vi Dockerfile

进去过后填入下面的内容

FROM nginx:latest
MAINTAINER xx
COPY dist/ /usr/share/nginx/html/                                             

第一行写的是设置基础镜像,也就是我们刚刚pull下来的nginx镜像,
第二行是写一个作者,写上自己的邮箱就好滴啦,
第三行的意思就是将dist文件夹下面的内容拷贝到/usr/share/nginx/html/这个目录下。
这个目录是不是很眼熟?这个路径就是nginx一般的项目地址路径。还记得nginx的测试页面在哪儿吗,就是这个路径下的index.html啦。

没有dist文件夹怎么办?更简单啦,vue项目下npm run build一下下啦。一般来说,项目成熟了部署的时候就不带源码了,直接带这个文件夹到地方部署就好了嘛。

好了 准备开始创建自己的镜像了

在Dockerfile的目录下执行

    docker build -t xxx .

xxx 是你镜像的名字。 特别注意后页面那个点不能省略

vue+nginx+docker 的前端项目部署方案_第3张图片
2019-04-28-5

然后在docker images 一下,你就能看到自己创建的镜像了。
然后执行命令创建容器

    docker run -d --name xx -p 8848:80 xxx

-d:代表后台启动
--name xx:这是创建的容器名称
-p 8848:80: 是将nginx的80映射到你服务器的8848端口(注意你服务器的端口是否开放8848,其他端口也可以)
xxx:是刚刚创建的镜像名称

然后执行docker ps


2019-04-28-6

然后就能看到你创建的容器了。
最后打开浏览器输入你的服务器ip端口号就行了


vue+nginx+docker 的前端项目部署方案_第4张图片
2019-04-28-7

基本的部署就完成啦。

当然还有很多坑和技巧,比如每次更新了项目如何让容器里的内容也更新等等。今天就不说了,下次再详细记录。

你可能感兴趣的:(vue+nginx+docker 的前端项目部署方案)