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
2019-04-28-2

然后查看一下你的镜像

docker images

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 是你镜像的名字。 特别注意后页面那个点不能省略

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端口号就行了

2019-04-28-7

基本的部署就完成啦。

你可能感兴趣的:(web)