美文网首页
服务端渲染生产环境部署

服务端渲染生产环境部署

作者: rithe | 来源:发表于2017-05-15 12:28 被阅读119次

一、运行环境准备

1、安装Docker Toolbox

Docker Toolbox 安装包包含了:

docker 客户端

docker-machine 工具

docker-compose 工具

Kitematic 一个Docker的GUI

我们可以在官网下载并安装

2、创建一台新的Docker Machine

docker-machine create -driver virtualbox dockerhost

dockerhost是数组机名称

3、设置环境变量

为了让本地的 docker 客户端了解需要连接的 docker 目标服务器地址,因此需要设置环境变量

eval “$(docker-machine env dockerhost)"

4、利用docker安装node镜像

docker pull node

5、利用docker安装nginx镜像

docker pull nginx

6、查看数组机(dockerhost)的ip

docker-machine ip dockerhost


二、准备部署代码

1、新建一个文件夹ssr,将打包之后的代码(dist文件夹)放入ssr文件夹中

2、将server.js放入ssr文件夹中,server.js文件内容如下

3、将package.json文件放入ssr文件夹中

4、将ssr压缩成zip格式的,再将ssr.zip从主机中拷入数组机中

docker scp ~/www/ssr.zip dockerhost:/home/docker/ssr.zip

需要注意的是,拷贝路径必须是绝对路径

5、进入数组机中用ls命令可以看到ssr.zip文件,解压ssr.zip

docker-machine ssh dockerhost

ls

unzip ssr.zip


三、自定义pm2镜像

1、进入解压后的文件夹ssr

cd ssr

2、创建并编辑process.yml文件

vi process.yml

process.yml文件内容为:

3、创建并编辑dockerfile文件

vi dockerfile

dockerfile文件内容为:

执行如下命令构建一个镜像

docker build -t ssr/pm2 .

执行完之后就会构建一个名为ssr/pm2的镜像

4、执行如下命令,用ssr/pm2镜像启动一个容器

docker run -d --name testpm2 -p 8080:8080 ssr/pm2


四、自定义Nginx镜像

1、在新的文件夹里创建并编辑dockerfile文件

2、创建并编辑nginx.conf文件

执行下面的命令创建一个Nginx镜像

docker build -t ssr/nginx .

3、使用docker images查看镜像

docker images

4、创建一个Nginx容器并连接之前创建的testpm2容器

docker run -d --name nginx -p 80:8089 --link testpm2:testpm2 ssr/nginx

5、在主机的浏览器地址中输入数字机的ip地址即可访问,如:192.168.99.100


五、小结

1、在浏览器中访问数组机的ip时出现不能访问的情况,应该容器没有启动起来,在上述启动容器的步骤中用的是-d命令,-d表示让容器在后台运行。若想查看容器的具体错误,在启动容器的时候将-d换成-it即可 2、常用docker命令

docker-machine ssh dockerhost //进入数组机

docker-machine start dockerhost //启动数组机

docker-machine scp 源路径 目标路径 //将文件从主机中拷入数组机中,源路径是文件所在主机的位置,目标路径是数组机的路径(dockerhost:/home/docker/**.zip)

docker run -it --name test node//启动一个node容器,名为test

docker build -t test/node .//创建test/node镜像

docker images //查看镜像列表

docker ps //查看正在运行的容器

docker ps -a //查看所有容器

docker start test 启动名为test容器

docker stop test 停止名为test容器

docker rm test //删除名为test容器

docker rm test -f //删除正在运行中的test容器

docker rmi test/node //删除名为test/node的镜像

相关文章

网友评论

      本文标题:服务端渲染生产环境部署

      本文链接:https://www.haomeiwen.com/subject/aaqhxxtx.html