原文链接Docker非常方便的将前端项目和Node项目分开部署。这里我就分享一下Docker的使用,主要是说一下它的部署实践。(我在Windows10专业版上安装了Docker)DockerDocker是一种应用容器引擎技术,类似于虚拟机,但更实用、通用、更方便。一个Docker容器可以说是一个VM,但是它占用的资源更少。更轻,通过操作系统级的虚拟化方式,使用更经济的硬件资源,为用户提供更多的计算资源。Docker容器是Linux容器的一个包。由于容器有独立的运行环境,Docker可以将应用和依赖打包到容器中,启动容器运行程序。Docker容器的Docker部署配合GitHubAction、Jenkins、Rancher使用非常方便。当然这里说的是Docker的个人部署实践。下面主要是指通用的前端项目部署方案。配置nginx,在前端根目录下创建nginx.conf(与package.json同级)。具体配置如下,可根据项目实际进行调整修改:server{listen80default_server;服务器名称_;位置/{root/usr/share/nginx/html/web;indexindex.htmlindex.htm;try_files$uri$uri//index.html;}#接口代理示例#location/api{#proxy_passhttp://xxx.com;#proxy_set_header主机$host:$server_port;#proxy_set_headerX-Real-IP$remote_addr;#proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;#proxy_set_headerCookie$http_cookie;#proxy_buffering关闭;#proxy_cache关闭;#}}nginx配置的主要功能是静态资源代理,同步接口转发。以上配置是直接在机器上运行。如果想在服务器上运行,可以将配置改为:listen80;服务器名xxx.com;配置Dockerfile在根目录下创建Dockerfile文件(与package.json同级)FROMnode:latestCOPYpackage.json/RUNnpmi--registry=https://registry.npm.taobao.orgRUNnpmrunbuildFROMnginx:latest#这里的dist/目录就是你项目的打包文件目录COPY./dist//usr/share/nginx/html/COPY./nginx.conf/etc/nginx/conf.d/EXPOSE80上面的配置文件很简单,主要是构建打包,然后安装nginx,复制nginx配置文件,复制打包后的文件并开放80端口。Docker镜像部署更新项目到服务器,在服务器上运行Dockerbuild命令(当然,本地也可以构建):dockerbuild-tdocker/web:v1.0.docker/web:v1.0是镜像名,特别注意后页的点不能省略。启动容器dockerrun-d-p8080:80docker/web:v1.0docker/web:v1.0是构建镜像时设置的名称,8080:80表示将nginx的80映射到你服务器的8080端口(注意你的服务器端口是否开放8080,其他端口也可以;如果是本地访问,不考虑这个)。镜像启动成功后,在浏览器中输入localhost:8080即可访问。
