diff --git a/CICD-ucloudUhub.md b/CICD-ucloudUhub.md index f80e5b5..d4f56fa 100644 --- a/CICD-ucloudUhub.md +++ b/CICD-ucloudUhub.md @@ -4,13 +4,13 @@ GitHub Actions是GitHub的一个持续集成和持续交付(CI/CD)的平台 #### Workflow(工作流) -Workflow其实就是一个可配置的自动化过程,会运行一个或多个Job。Workflow定义在存储库的 .github/workflows文件夹的一个YML或者YAML文件中,并在存储库的Event触发时运行,也可以配置成手动触发运行,或者定时触发。一个Workflow中甚至可以引用另一个Workflow。 +Workflow其实就是一个可配置的自动化过程,会运行一个或多个Job。Workflow定义在仓库的 .github/workflows文件夹的一个YML或者YAML文件中,并在仓库的Event触发时运行,也可以配置成手动触发运行,或者定时触发。一个Workflow中甚至可以引用另一个Workflow。 -可以简单理解,一个YML配置文件就是一个Workflow,存储库可以在.github/workflows文件夹下拥有多个YML文件,即拥有多Workflows。每个Workflow可以执行一组不同的步骤。例如,一个存储库中有两个Workflows,就可以有一个Workflow用来构建和测试PR(Pull Request),另一个Workflow用来每次发布Release版本时自动部署应用。 +可以简单理解,一个YML配置文件就是一个Workflow,仓库可以在.github/workflows文件夹下拥有多个YML文件,即拥有多Workflows。每个Workflow可以执行一组不同的步骤。例如,一个仓库中有两个Workflows,就可以有一个Workflow用来构建和测试PR(Pull Request),另一个Workflow用来每次发布Release版本时自动部署应用。 #### Event(事件) -Event是存储库中的一个用来触发Workflow运行的特殊活动,有不同类型,如某人创建了一个PR、新建了一个Issue等,这些都是可以用来触发Workflow运行的Event。 +Event是仓库中的一个用来触发Workflow运行的特殊活动,有不同类型,如某人创建了一个PR、新建了一个Issue等,这些都是可以用来触发Workflow运行的Event。 #### Job(工作) @@ -18,7 +18,7 @@ Job是Workflow中的一组步骤,在同一个Runner(运行者)上运行。 #### Action -Action是GitHub Actions平台的自定义应用程序,用于执行复杂但经常重复的任务。Action可以减少在Workflow的YML文件中编写的重复代码。Action可以从GitHub上拉取存储库代码,为构建环境设置正确的工具链。我们可以编写自己的Action,也可以在GitHub Marketplace中寻找适合使用的Action。 +Action是GitHub Actions平台的自定义应用程序,用于执行复杂但经常重复的任务。Action可以减少在Workflow的YML文件中编写的重复代码。Action可以从GitHub上拉取仓库代码,为构建环境设置正确的工具链。我们可以编写自己的Action,也可以在GitHub Marketplace中寻找适合使用的Action。 #### Runner(运行者) @@ -54,7 +54,7 @@ Runner是在Workflow被触发时运行它们的服务器。每个Runner一次可 #### 1.复制项目代码 -将 https://github.com/OpenEduTech/DaseDevOps/tree/master 复制到自己的账户下后,会生成DaseDevops仓库。注意:下面所有图中显示的devops_demp仓库其实对应的是DaseDevops仓库下的dasedevops_spring_demo项目。 +将 https://github.com/OpenEduTech/DaseDevOps/tree/master 复制到自己的账户下后,会生成DaseDevops仓库。注意:下面所有图中显示的devops_demo仓库其实对应的是DaseDevops仓库下的dasedevops_spring_demo项目。 ![image-20231111152635356](./images/openedu_repo.png) @@ -89,7 +89,9 @@ ssh-keygen -t rsa -C "102155014xx@stu.ecnu.edu.cn" 首先,创建一个 centOS 云主机,1 核 2G 配置,20M 带宽流量计费,数据盘设置为 50 G -安装Docker,安装docker-compose。 +安装Docker(参照https://gitea.shuishan.net.cn/xslu_dase_ecnu_edu_cn/cloud-computing-course/src/branch/master/Assignment2.md), + +安装docker-compose。 ##### docker-compose 安装过程: @@ -156,7 +158,7 @@ vi /etc/profile 在文件末尾添加 ``` -export JAVA_HOME=/usr/java/jdk-1.8.0_391 +export JAVA_HOME=/usr/java/jdk1.8.0_391 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib ``` @@ -185,7 +187,7 @@ source /etc/profile tar -xvf apache-maven-3.9.5-bin.tar.gz ``` -执行 `vim /etc/profile` 配置环境变量 +执行 `vi /etc/profile` 配置环境变量 ``` MAVEN_HOME=/usr/local/apache-maven-3.9.5 @@ -259,7 +261,7 @@ sudo vi conf/settings.xml ![image-20231112155904281](./images/personal_page.png) -需要把 默认仓库类型 设置为公开。 +### **需要把 默认仓库类型 设置为公开。** ## `作业 1: 创建完成以后,进入个人实例-命名空间页面,截图插入实验报告。` @@ -296,6 +298,7 @@ jobs: run: | whoami pwd + cd dasedevops_spring_demo mvn -B package --file pom.xml pwd - name: Login to Aliyun Container Registry (ACR) @@ -323,7 +326,7 @@ jobs: - name: Copy single file to remote uses: garygrossgarten/github-action-scp@release with: - local: ./docker-compose.yml + local: ./dasedevops_spring_demo/docker-compose.yml remote: scp/devops_demo/docker-compose.yml host: ${{ secrets.HOST }} username: ${{ secrets.USER_NAME }} @@ -401,9 +404,10 @@ env: 编辑 DockerFile 也是为了分别将这六个 module 打包成镜像,上传到镜像仓库中。这么看,这个 yml 文件是不是也不那么复杂?🐶 gateway微服务的Dockerfile文件内容如下: +**在六个文件夹下分别创建名为dockerfile的文件** ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /gateway.jar @@ -414,7 +418,7 @@ EXPOSE 8080 hello微服务的Dockerfile文件内容如下: ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /hello.jar @@ -425,7 +429,7 @@ EXPOSE 8001 login微服务的Dockerfile文件内容如下: ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /login.jar @@ -436,7 +440,7 @@ EXPOSE 8000 provider_one微服务的Dockerfile文件内容如下: ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /provider_one.jar @@ -447,7 +451,7 @@ EXPOSE 8666 provider_two微服务的Dockerfile文件内容如下: ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /provider_two.jar @@ -458,7 +462,7 @@ EXPOSE 8667 provider_three微服务的Dockerfile文件内容如下: ```dockerfile -FROM java:8 +FROM openjdk:8 MAINTAINER ningzhicheng VOLUME /tmp ADD ./target/*.jar /provider_three.jar @@ -505,6 +509,9 @@ services: - "8668:8668" ``` +文件目录如下: +![image](./images/schema.png) + 随后将所有文件提交到暂存区,创建提交信息,推送提交。 ``` diff --git a/images/schema.png b/images/schema.png new file mode 100644 index 0000000..91b88b9 Binary files /dev/null and b/images/schema.png differ