1.简介
保持线上项目的稳定运行非常重要。 要实现99.9%的服务可用性,并节省开发者在项目部署上花费的大量精力,可以尝试自动发布。
自动部署涉及到很多配置,每个环节需要不同的知识。 会单独介绍
过程中用到的技术栈webpack docker nginx shell
2.实际环境
mac
node > 10.11.1
Docker > 20.0.0
3. 提前准备的内容
使用create-react-app、myweb构建的前端项目 我有一个项目名为
本地安装docker
4.构建docker镜像
首先通过镜像构建Docker镜像。 要打包前端部署包,请在项目的根中创建一个新的 Dockerfile 文件。
1. 使用 DockerfileFROM node:10-alpine 作为构建器复制 WORKDIR /data/myweb。 。 R UN npm install --registry=https://registry.npm.taabao.org --no-package-lock --no-s ave从 nginx:alpine 作为 myweb 运行纱线构建 RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && echo "亚洲/上海" > /etc/timezone WORKDIR /data/myweb COPY ./nginx /etc/nginx/conf.d COPY --from=builder /data/myweb/build /data/ myweb EXPOSE 80,44 3 复制代码
2.配置文件说明:
这个Dockerfile是2 执行一个过程。
首先是将前端项目打包成一个名为builder的节点镜像。
第二种是拉取nginx镜像并覆盖文件中的nginx配置镜像。 ,将打包到构建器镜像中的文件复制到 nginx 镜像的 /data/myweb 文件并运行 docker build -t myweb 。
此时,运行打包命令即可得到两张镜像。 ,打包后的node镜像和nginx镜像。 启动服务只需要 nginx 镜像。
3. 执行命令。 // 1. Docker 创建一个 Dockerfile `docker build [ k4]t dockerName:1.0.0 .` // 2. 显示当前镜像。 现有镜像 docker image // 3. 删除 docker 镜像 docker rmi dockerImageId // 4. 删除 docker 容器 docker rmdockerContainerId // 5.启动Docker容器 docker run -d -p 8000:80 --namefrontend [dockerImageName] // 6.显示正在运行的容器 docker ps 复杂代码 Control
</ 4.服务执行
你会看到当前正在运行的容器
在浏览器中访问http://localhost:8000,选择当前通过docker部署的服务即可查看。
5.nginx配置文件
这个和常规部署一样,用于传输静态资源。 在根 /nginx/ 中创建一个新的 nginx 文件夹。 default.conf 服务器 { 监听 80; 查找 ATION/ROOT/DATA/MyWeb。 索引index.html;} error_page 500 502 503 & nbsp;504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } 复制代码
这样就可以运行docker服务了您已经完成了部署的第一步
也可以直接通过 Docker 部署前端。
接下来,使用Docker部署基础知识,
然后通过k8s集群进行部署。
作者:前端、中台、后端链接:https://juejin. cn/post/6962037427108380709 来源:稀土金块版权归作者所有。 如需商业转载,请联系作者获得许可。 若非商业目的转载,请注明出处。
评论前必须登录!
注册