新建项目加入到生成流水线中

新建项目加入到生成流水线中

   整个生成流水线已经搭建完毕了,这一次来从零开始融入到生成流水线中,从仓库建立到镜像生成整个过程,对于之前几篇文章的一次应用过程,注意,本次建立过程是保证在前期基础搭建完毕后的应用阶段,本次搭建过程较为简单,只作为参考示例,并无技术含量。

 

一、码云中新建项目

  1、在码云中新建一个项目,取名为Standard,作为一个示例项目名,仓库地址:https://gitee.com/530521314/Standard.git

  

  2、将仓库拉取到本地,开始在本地构建项目,我直接使用VS的Git工具

  

 

二、新建解决方案+项目

  1、新建空白解决方案,指定方案名和路径地址

  

  2、添加src文件夹到解决方案下(用于项目结构上区分)

  

  3、添加应用程序,选择Asp.Net Core Web应用程序

  

  注意:此处直接新建项目的位置为src文件夹下,主要是为了标准化搭建,前期文章也提及了。

 

三、配置需要的脚本文件

  1、增加docker compose,选中项目右键添加->容器业务流程协助程序支持,弹框内选择目标平台,此处我选择为Linux,将dockerfile和docker-compose文件都一并加入到项目中了。

  

  加入进来后的项目结构

  

  2、对于docker compose脚本,没有必要在项目结构中展现,选中后右键将其卸载并移除。同时处理一下文件夹中的docker-compose,修改一下项目结构,增加docker文件夹,并将obj文件夹、docker相关的4个文件移入到docker文件夹中

  

  3、最终项目结构:gitIgnore文件(手动配置或使用模板),docker文件夹主要负责docker-compose脚本,src主要为应用程序及其相关,如有更多其它项目,如单元测试、集成测试,则还可以加入test文件夹,如还有文档资料,则还可以加入Document文件夹

  

  4、修改docker-compose.yml中dockerfile位置(主要修改content),修改image地址为镜像仓库地址,镜像版本前期使用latest,后期稳定部署时改为数字值

   

  5、全部整理完毕后,执行代码提交并推送到仓库中

  

 

四、Jenkins中新建项目

  具体的在Jenkins中新建项目可以参见该文章:https://www.cnblogs.com/CKExp/p/9940479.html,在此只处理执行脚本:

  1、镜像生产

复制代码

#!/bin/bash
# 获取短版本号

GITHASH=`git rev-parse --short HEAD`

docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.override.yml -p standard down --rmi local --remove-orphans
# 生成容器及镜像等并对外提供服务
# docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.override.yml -p standard up -d --build
# 只生产镜像
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.override.yml -p standard build

复制代码

    2、镜像推送到镜像仓库中

docker login -u=xxx用户名xxx -p=xxx密码xxx ccr.ccs.tencentyun.com
docker-compose -f ./docker/docker-compose.yml -f ./docker/docker-compose.override.yml push

   3、保存并构建,查看控制台输出,构建成功

  

 

五、查看镜像仓库

   1、查看本地主机上的镜像,通过docker image命令或是UI管理工具

  

  2、查看腾讯云镜像仓库,镜像构建完毕,当代码持续更改,镜像持续进行构建

  

 至此,从新建项目到镜像构建并推送到镜像仓库整个过程完成,主要是应用阶段,因此技术含量不多。

### 创建并运行第一个Apache Flink项目 #### 准备工作环境 为了成功创建并运行首个Flink应用,需先安装配置好Java开发环境以及Maven构建工具。确保已设置JAVA_HOME环境变量指向JDK路径,并能通过命令行访问`mvn`命令。 #### 初始化Maven项目结构 使用Maven原型插件来初始化一个新的Flink应用程序骨架: ```bash mvn archetype:generate \ -DgroupId=com.example.flink \ -DartifactId=my-flink-project \ -DarchetypeArtifactId=maven-archetype-quickstart \ -DinteractiveMode=false ``` 这会生成一个基础的Maven工程目录树[^2]。 #### 添加依赖项至pom.xml文件 编辑项目的`pom.xml`文件,加入必要的Flink库依赖声明以便后续编译链接时能够识别这些类库: ```xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.flink/flink-streaming-java --> <dependency> <groupId>org.apache.flink</groupId> <artifactId>flink-streaming-java_2.12</artifactId> <version>1.14.0</version> </dependency> <!-- Other dependencies... --> </dependencies> ``` 上述XML片段展示了如何引入用于流处理的核心模块版本号为1.14.0的具体实例[^1]。 #### 编写简单的Word Count程序作为入门案例 在src/main/java下新建名为`com/example/flink/WordCount.java`源码文件,输入如下所示的基础代码实现单词计数逻辑功能: ```java package com.example.flink; import org.apache.flink.api.common.functions.FlatMapFunction; import org.apache.flink.api.java.tuple.Tuple2; import org.apache.flink.streaming.api.datastream.DataStreamSource; import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment; import org.apache.flink.util.Collector; public class WordCount { public static void main(String[] args) throws Exception { final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStreamSource<String> text = env.fromElements( "To be, or not to be, that is the question", "Whether 'tis nobler in the mind to suffer" ); text.flatMap(new Tokenizer()) .keyBy(value -> value.f0) .sum(1) .print(); env.execute("Word Count Example"); } public static final class Tokenizer implements FlatMapFunction<String, Tuple2<String, Integer>> { @Override public void flatMap(String value, Collector<Tuple2<String, Integer>> out) { String[] tokens = value.toLowerCase().split("\\W+"); for (String token : tokens) { if (token.length() > 0) { out.collect(new Tuple2<>(token, 1)); } } } } } ``` 这段代码定义了一个基本的数据流水线,它读取字符串列表中的句子,将其拆分为单独词语并通过键控窗口聚合统计每个词频次最后打印输出结果。 #### 构建可执行jar包 完成编码后回到IDEA界面依次操作菜单栏选项:File->Project Structure->Artifacts 来指定要被打包的内容;接着选择 Build->Build Artifacts 完成整个过程。 #### 部署到远程集群执行 假设已经有一个正在运行着单节点模式下的Flink集群,则可通过SCP协议把本地生成好的jar复制过去放置于服务器特定位置等待提交任务给JobManager调度器去启动作业流程: ```bash docker cp my-flink-projec2.jar master:/opt/ ``` 随后登录目标机器终端连接进入容器内部利用CLI客户端提交该job请求即可开始正式跑批运算任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值