首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Rainbond-离线环境下的JAVA源码构建

Rainbond-离线环境下的JAVA源码构建

作者头像
Rainbond开源
发布2019-09-25 14:54:56
7410
发布2019-09-25 14:54:56
举报

为什么要写这篇文档?

在交付了很多企业级用户后,我们发现很多用户的环境都是离线的。我们一直在探索离线环境下实现源码构建的方案,以期让这些企业用户可以也可以体验到Rainbond源码构建功能带来的便捷。

那么,在离线环境下,实现源码构建会有哪些难点呢?其实这个问题的答案就是整套源码构建流程中有哪些点对于互联网有依赖:

- 代码仓库:源码构建过程的起点是一个可用的代码仓库,离线环境下我们不可以使用 Github、Gitee 等基于互联网的代码仓库。Gitlab、Gogs 等私有代码仓库成为了最佳选择。有些用户已经拥有了自己的私有代码仓库,这种情况下,保证Rainbond管理节点所在的服务器可以正常访问到该代码仓库即可;而对于还没有搭建自己的私有代码仓库的用户而言,如何快速搭建一个Gitlab或者Gogs就是离线源码构建需要攻克的第一关。

- 构建私服:构建私服是指在源码构建过程中,获取依赖包的仓库,常见的有 Nexus、Artifactory 等。有些用户已经拥有了自己的私有构建私服用以管理自己的依赖包,这种情况下,我们提供方案让 Rainbond 可以直接对接私服;而对于还没有搭建自己的构建私服的用户而言,Rainbond自带的 rbd-repo 组件可以作为本地仓库使用。

- 应用运行时:应用运行时是指服务运行所依赖的环境,比如对于Java应用而言,运行时就是环境中安装的 Jdk。对于用户而言,离线环境如何配置好应用运行时是离线源码构建最大的挑战。

在明确了上述难点后,接下来的文章,会以Java应用构建为例,指引用户一步步攻克这些难关,最终达成离线源码构建的目标。

离线部署代码仓库

在离线环境下,推荐使用平台的应用离线导入功能,快速导入 Gitlab 应用并安装使用。

需要事先获取离线资源:Gitlab应用包 Gogs应用包

- 访问Rainbond应用管理平台,并导入离线应用包

查看长截图

Gogs离线导入方式和Gitlab一致。

至此,我们已经拥有了一个私有化的代码仓库。可以通过它来托管代码,并可以通过它实现自动构建

离线对接/部署构建私服

Java源码基于Maven构建过程中,会根据 pom.xml 文件解析依赖关系,并前往指定的构建私服拉取依赖包。而在Rainbond中,安装了默认的源码构建包仓库 rbd-repo ,这个组件既可以作为已有私服的代理,也可以用来搭建本地私服,来应对不同用户的需求。

- 已有私服的对接

- 搭建本地仓库,并导入jar包

离线配置应用运行时

本节提供一个在应用中离线安装运行时(Jdk)的方案,这个方案会运行起一个私服仓库服务,这个私服仓库可以负责安装java运行所需要的Jdk环境。

  • 有网环境下载离线资源镜像
docker pull rainbond/buildpack:java-v5.1.5
docker save rainbond/buildpack:java-v5.1.5 > rainbond-buildpack-java-v5.1.5.tgz
  • 导入镜像

将保存下来的镜像压缩文件放到首个管理节点上,然后导入镜像:

docker load -i rainbond-buildpack-java-v5.1.5.tgz
docker tag rainbond/buildpack:java-v5.1.5 goodrain.me/buildpack:java-v5.1.5
docker push goodrain.me/buildpack:java-v5.1.5
  • 运行私服仓库服务

编辑配置文件,将该服务运行起来。

vi /opt/rainbond/conf/base.yaml

在最下面一行添加如下段落

- name: rbd-java-buildpack
  endpoints:
  - name: BUILDPACK_ENDPOINTS
    protocol:
    port: 2017
  health:
    name: rbd-java-buildpack
    model: http
    address: 127.0.0.1:2017/lang/
    max_errors_num: 3
    time_interval: 30
  after:
    - docker
  type: simple
  pre_start: docker rm rbd-java-buildpack
  start: >-
    docker run --name rbd-java-buildpack
    --network host
    -i goodrain.me/buildpack:java-v5.1.5
  stop: docker stop rbd-java-buildpack
  restart_policy: always

启动服务

node service update

验证服务是否运行

grctl cluster
  • 对接rbd-repo并修改远程仓库
所有节点rbd-repo都需要调整

修改远程仓库 pkg_lang 对应URL为 http://<首个管理节点IP>:2017/lang/

至此,离线环境下的Java源码构建环境就配置完成了。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Rainbond 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 为什么要写这篇文档?
  • 离线部署代码仓库
  • 离线对接/部署构建私服
  • 离线配置应用运行时
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档