网站建设的时间WordPress配置七牛代码

当前位置: 首页 > news >正文

网站建设的时间,WordPress配置七牛代码,郑州制作微信小程序,2023很有可能再次封城吗在企业开发过程中#xff0c;我们开发的功能或者是修复的BUG都需要部署到服务器上去#xff0c;而这部分部署操作又是重复且繁琐的工作#xff0c;GitLab-CI 持续集成为我们解决了这一痛点#xff0c;将重复部署的工作自动化#xff0c;大大的节省了程序员们的宝贵时间。本… 在企业开发过程中我们开发的功能或者是修复的BUG都需要部署到服务器上去而这部分部署操作又是重复且繁琐的工作GitLab-CI 持续集成为我们解决了这一痛点将重复部署的工作自动化大大的节省了程序员们的宝贵时间。本文详细讲述了 GitLab-CI 持续集成的安装、部署、以及配置。 文中的工具包有需要的话也可以私信博主哟~ 一、概述 1.1、什么是CI/CD CI/CD 属于 DevOps代表持续集成、持续交付/部署。CI/CD 自动化了传统上将新代码从提交到生产例如构建、测试和部署以及基础设施配置所需的大部分或全部手动人工干预。借助 CI/CD 开发人员可以对代码进行更改然后自动测试并推出以进行交付和部署。以实现停机时间最小化代码发布速度更快。 1.2、持续集成(CI) 持续集成是在提交或合并代码时自动测试每个更改并自动启动构建。可以大大减少开发和运维人员的重复工作可以在软件开发生命周期的更早阶段更轻松的发现并修复错误和安全问题。 1.3、持续交付(CD) 持续交付是一种软件开发实践一般与持续集成结合使用以自动化基础设置供应和应用程序发布过程。 一旦代码作为 CI 流程的一部分进行了测试和构建持续交付将在最后阶段接管以确保可以随时部署并将部署所需要的环境打包在一起。 通过持续交付可以随时将构建的软件部署到生产环境。可以手动触发部署也可以进行自动化部署。 二、CI/CD流水线 2.1、Pipeline Pipeline 相当于构建任务里面可以包含多个流程如安装依赖、运行测试、编译、部署测试服务器、部署生产服务器等流程。 任何提交或合并代码都可以触发 Pipeline。 2.2、Stages Stages 表示构建阶段可以在一次 Pipeline 中定义多个 Stages。 Stages 有以下特点 所有 Stages 会按照顺序运行即当一个 Stage 完成后下一个 Stage 才会开始只有当所有 Stages 完成后该构建任务 (Pipeline) 才会成功如果任何一个 Stage 失败那么后面的 Stages 不会执行该构建任务 (Pipeline) 失败 2.3、Jobs Jobs 表示构建工作表示某个 Stage 里面执行的工作。可以在 Stages 里面定义多个 Jobs。 Jobs 有以下特点 相同 Stage 中的 Jobs 会并行执行相同 Stage 中的 Jobs 都执行成功时该 Stage 才会成功如果任何一个 Job 失败那么该 Stage 失败即该构建任务 (Pipeline) 失败 2.4、Runners Runner 是一个在 GitLab CI/CD 管道中运行作业的应用程序。简而言之就是由 Runner 来执行这些构建任务。 GitLab Runner 可以安装到不同的机器上也可以在容器或 Kubernetes 集群中运行。Runner 在安装机器上处理作业在构建任务运行期间并不会影响到 GitLab 的性能。 三、安装GitLab Runner 3.1、环境准备 创建目录 1 mkdir -p /usr/local/docker/runner 1 mkdir -p /usr/local/docker/runner/environment
下载 jdk-8u341-linux-x64.tar.gz、apache-maven-3.5.3-bin.tar.gz、settings.xml、docker-compose并将其上传至 environment 目录 1 2 3 4 5 6 7 8 \( ll total 197168 drwxr-xr-x 2 root root      4096 Dec  3 20:13 ./ drwxr-xr-x 3 root root      4096 Dec  3 20:13 ../ -rw-r--r-- 1 root root   8799579 Dec  3 20:13 apache-maven-3.5.3-bin.tar.gz -rw-r--r-- 1 root root  44924928 Dec  3 20:13 docker-compose -rw-r--r-- 1 root root 148162542 Dec  3 20:13 jdk-8u341-linux-x64.tar.gz -rw-r--r-- 1 root root     10596 Dec  4 20:13 settings.xml settings.xml 中增加了 maven 部署的 server 节点否则项目 deploy 时会失败 3.2、创建Dockerfile 在environment目录下创建 daemon.json 1 vi /usr/local/docker/runner/environment/daemon.json 内容如下 1 2 3 4 5 6 7 8 {   registry-mirrors: [     https://mirror.ccs.tencentyun.com   ],   insecure-registries: [     192.168.110.158:5000   ] } registry-mirrors为镜像加速地址这里是使用的腾讯云的镜像加速地址。insecure-registriesDocker仓库的IP。 注意需要提前搭建Docker 私服(Docker Registry) 在environment目录下创建 Dockerfile 1 vi /usr/local/docker/runner/environment/Dockerfile 内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 FROM gitlab/gitlab-runner:v11.0.2 # 修改软件源 RUN echo deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse /etc/apt/sources.list \     echo deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse /etc/apt/sources.list \     echo deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse /etc/apt/sources.list \     echo deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse /etc/apt/sources.list \     apt-get update -y \     apt-get clean # 安装 Docker RUN apt-get -y install apt-transport-https ca-certificates curl software-properties-common \     curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | apt-key add - \     add-apt-repository deb [archamd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu \)(lsb_release -cs) stable \     apt-get update -y \     apt-get install -y docker-ce COPY daemon.json /etc/docker/daemon.json # 安装 Docker Compose WORKDIR /usr/local/bin COPY docker-compose /usr/local/bin RUN chmod x docker-compose # 安装 Java RUN mkdir -p /usr/local/java WORKDIR /usr/local/java COPY jdk-8u341-linux-x64.tar.gz /usr/local/java RUN tar -zxvf jdk-8u341-linux-x64.tar.gz \     rm -fr jdk-8u341-linux-x64.tar.gz # 安装 Maven RUN mkdir -p /usr/local/maven WORKDIR /usr/local/maven COPY apache-maven-3.5.3-bin.tar.gz /usr/local/maven RUN tar -zxvf apache-maven-3.5.3-bin.tar.gz \     rm -fr apache-maven-3.5.3-bin.tar.gz COPY settings.xml /usr/local/maven/apache-maven-3.5.3/conf/settings.xml # 配置环境变量 ENV JAVA_HOME /usr/local/java/jdk1.8.0_341 ENV MAVEN_HOME /usr/local/maven/apache-maven-3.5.3 ENV PATH \(PATH:\)JAVA_HOME/bin:\(MAVEN_HOME/bin WORKDIR / 3.3、创建docker-compose 在runner目录下创建 docker-compose.yml 1 vi /usr/local/docker/runner/docker-compose.yml 内容如下 1 2 3 4 5 6 7 8 9 10 version: 3.1 services:   gitlab-runner:     build: environment     restart: always     container_name: gitlab-runner     privileged: true     volumes:       - ./config:/etc/gitlab-runner       - /var/run/docker.sock:/var/run/docker.sock 构建启动 1 docker-compose up -d 启动后会自动进行构建 3.4、注册Runner 需要将每一个项目都注册 Runner。 进入到我们需要注册Runner的项目 点击设置-CI/CD在右侧找到Runner点击展开 可以看到这个项目的 Runner 的详细信息其中注册令牌是我们接下来注册 Runner 时必须要用到的 在 GitLab Runner 部署服务器上执行命令 1 docker exec -it gitlab-runner gitlab-runner register 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 # 输入 GitLab 地址 Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/): http://192.168.110.158:8080/ # 输入 Gitlab-ci token Please enter the gitlab-ci token for this runner: 78qwWqvR9xDc5_BjYpwo # 输入 Runner 的说明 Please enter the gitlab-ci description for this runner: [cdc79d8453ec]: # 设置 Tag Please enter the gitlab-ci tags for this runner (comma separated): deploy # 选择 runner 执行器 Registering runner... succeeded                     runner78qwWqvR Please enter the executor: kubernetes, docker-ssh, parallels, virtualbox, docker-sshmachine, docker, shell, ssh, dockermachine: shell Runner registered successfully. Feel free to start it, but if its running already the config should be automatically reloaded! 配置完后项目中会显示一个有效可用的 runner 3.4、项目配置 项目中需要添加一个 .gitlab-ci.yml 文件用于定义要运行的脚本。 3.4.1、依赖管理模块 刚刚在my-project-dependencies项目中配置了 Runner而 my-project-dependencies 项目只需要将其部署到 Nexus私服中所以此项目的 .gitlab-ci.yml 文件脚本内容就只需要将其deploy到Nexus即可。 内容如下 1 2 3 4 5 6 7 stages:   - deploy deploy:   stage: deploy   script:     - /usr/local/maven/apache-maven-3.5.3/bin/mvn deploy 项目结构图如下 提交my-project-dependencies项目可以在GitLab看到我们刚刚创建的流水线 如果状态一直在运行中在设置里面的 Runner 中勾选运行没有标签的作业 3.4.2、通用模块 my-project-common通用模块也需要注册Runner这里就不重复赘述了参考上文。 通用模块持续集成步骤 清理打包 .gitlab-ci.yml 文件内容如下 1 2 3 4 5 6 7 stages:   - deploy deploy:   stage: deploy   script:     - /usr/local/maven/apache-maven-3.5.3/bin/mvn clean deploy 提交my-project-common通用模块可以在Nexus中看到上传的jar持续集成成功。 3.4.3、服务模块 my-project-server项目服务模块同样需要注册Runner。 项目服务模块持续集成步骤 打包构建Docker镜像推送Docker仓库运行容器清理虚悬镜像 .gitlab-ci.yml 文件内容如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 stages:   - build   - push   - run   - clean build:   stage: build   script:     - /usr/local/maven/apache-maven-3.5.3/bin/mvn clean package -Dmaven.test.skiptrue     - cp target/my-project-server-1.0.0-SNAPSHOT.jar docker     - cd docker     - docker build -t 192.168.110.158:5000/my-project-server . push:   stage: push   script:     - docker push 192.168.110.158:5000/my-project-server run:   stage: run   script:     - cd docker     - docker-compose down     - docker-compose up -d clean:   stage: clean   script:     - docker rmi \)(docker images -q -f danglingtrue) docker 仓库地址更改为自己的IP 提交my-project-server项目服务模块查看构建结果 第一次最后一个步骤构建失败是因为没有可删除的虚悬镜像导致删除失败这个不影响 构建成功访问查询所有用户接口 http://IP:8899/sys-user/get/all 可以访问Docker仓库可以看到刚刚持续集成推送的镜像 1 2 $ curl 192.168.110.158:5000/v2/_catalog {repositories:[my-project-server]} 到这里项目的持续集成就完成啦