保持线上项目稳定运行是很重要的,为了达到服务可用性在99.9%,也为了减少开发人员在项目部署时耗费大量精力,可以尝试自动化发布
自动化部署涉及到的配置比较多,每个环节需要掌握的知识也不同,所以分开写
该过程中用到的技术栈webpack
docker
nginx
shell
mac
node > 10.11.1
docker > 20.0.0
通过create-react-app
构建的一个前端项,这里起名项目myweb
本地安装docker
首先通过镜像打包前端部署包,在项目根目录下,新建Dockerfile文件
FROM node:10-alpine as builder WORKDIR /data/myweb COPY . . RUN npm install --registry=https://registry.npm.taobao.org --no-package-lock --no-save RUN yarn build FROM nginx:alpine as myweb RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "Asia/Shanghai" > /etc/timezone WORKDIR /data/myweb COPY ./nginx /etc/nginx/conf.d COPY --from=builder /data/myweb/build /data/myweb EXPOSE 80,443 复制代码
该Dockerfile干了两件事,
第一是将前端项目打包到node镜像中,这里起名builder
第二是拉取nginx镜像,将文件的nginx配置镜像覆盖,将builder镜像中打包的文件复制到nginx镜像的/data/myweb
文件中,执行docker build -t myweb .
此时我们执行打包命令,得到的两个镜像,一个打包后的node镜像,一个nginx镜像,我们只需要nginx镜像来拉起服务
// 1、docker通过Dockerfile构建镜像 `docker build -t dockerName:1.0.0 .` // 2、查看当前存在镜像 docker images // 3、删除docker镜像 docker rmi dockerImageId // 4、删除docker容器 docker rm dockerContainerId // 5、启动一个docker容器 docker run -d -p 8000:80 --name frontend [dockerImageName] // 6、查看运行中的容器 docker ps 复制代码
我们可以看到当前运行中的容器
在浏览器访问http://localhost:8000
即可看到当前通过docker部署的服务
和我们正常部署是一样的,用来转发静态资源 在根目录下新建nginx文件夹,/nginx/default.conf
server { listen 80; server_name localhost; location / { root /data/myweb; index index.html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } } 复制代码
这样我们完成了第一步,通过docker部署我们的服务。
如果我们直接通过docker部署前端也是可以的。
接着,有了docker部署的基础,
接着继续通过k8s集群的部署
作者:前端中后台
链接:https://juejin.cn/post/6962037427108380709
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/127951.html
摘要:将一个轻量级的容器虚拟化平台和一组标准工作流程工具进行集成,来帮助你方便地管理和部署应用。主要包括哪些组件主要包括两个组件开源的容器虚拟化平台用于分享和管理容器的软件即服务平台。 【编者的话】本文来自 Docker 的官方文档,详细介绍了 Docker 的体系结构、重要概念、内部工作机理等内容,推荐不了解 Docker 内部原理的同学阅读。 什么是 Docker? Docker 是...
摘要:联调测试,无需依赖他人。针对以上问题,有两种解决方法,一个是自己搭建私有服务,另一个是用云服务的镜像管理平台如阿里云的容器镜像服务。利用,先对阿里云的服务进行登录。推送后,就能在阿里云的仓库上看到这个镜像。 Docker简述 Docker是一种OS虚拟化技术,是一个开源的应用容器引擎。它可以让开发者将应用打包到一个可移植的容器中,并且该容器可以运行在几乎所有linux系统中(Windo...
Docker技术之构建镜像和网络模式解析 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...
摘要:分钟快速入门教程一欢迎来到世界与虚拟化在没有的时代,我们会使用硬件虚拟化虚拟机以提供隔离。仓库分为公开仓库和私有仓库,最大的公开仓库是官方仓库,国内的公开仓库也有很多选择,例如阿里云等。 30 分钟快速入门 Docker 教程 一、欢迎来到 Docker 世界 1. Docker 与虚拟化 在没有 Docker 的时代,我们会使用硬件虚拟化(虚拟机)以提供隔离。这里,虚拟机通过在操作系...
阅读 130091·2024-02-01 10:43
阅读 758·2024-01-31 14:58
阅读 733·2024-01-31 14:54
阅读 82539·2024-01-29 17:11
阅读 2821·2024-01-25 14:55
阅读 1896·2023-06-02 13:36
阅读 2771·2023-05-23 10:26
阅读 835·2023-05-23 10:25