建木-进阶使用-自动化部署-流程自动化部署-节点化部署-将jar包运行在指定的服务器上-ssh文件书写-docker镜像创建

news2024/9/24 1:25:57

阿丹:

        建木的搭建以及在jar包中的dockerfile文件的书写。已经完毕。现在开始使用建木的流程化部署来完成自动化部署。

进入我们自己配置的建木页面

新建一个分组,方便我们不同项目的管理

  起名要求见名知意

 使用图形项目 

开始新建一个流程,用来自动化部署我们的项目。 

 建木提供了很多个官方节点

选择触发器等,通过一个个节点来形成通道实现自动化部署。

开始构建一个流程

逐个介绍一下:

1、webhook触发器:用来开始整个流程(后面会将用处)

2、 git clone从git上拉取代码进行操作

3、maven构建节点:可自定义执行maven指令

4、docker构建镜像:可操作文件中的dockerfile文件来进行定制执行。

5、ssh:执行自定义的命令

webhook触发器

在这里进行配置

点击获取到webhook。 

 

去自己的代码管理上配置webhook

对webhook进行配置,将刚才的连接保存在URL中

 配置触发事件

建议关闭ssl认证 

 添加webhook即可。在代码管理平台的代码触发上述勾选的时间之后。webhook就会根据这个链接来触发这个流程

git clone

        执行对应的git动作

必须填写的内容:

        1、用户名和密码是之前设置的密钥
        2、需要我们去gitee或者在gitLab上面的

 复制这里的克隆填入节点的git地址。

 3、注意自己的分支是否正确

看到我们的分支main

更改下面的分支,默认为master

 

maven构建节点

在使用节点版本前的准备工作,准备对应版本的openjdk

docker pull openjdk:17-ea-slim
docker save -o opendjdk:17-ea-slim.tar openjdk:17-ea-slim

这里可以根据我们的需求来自己构建maven指令。

 workspace:

 

mvn action:要使用的maven动作

因为我们要在线上自动化部署所以这里使用package 

 

 nexus:这里是与私服建立连接,如果没有可以不选

 

docker构建镜像 

dockerhub与私服相关:不是必填选项 

 

镜像名称:建议使用如图所示 

 

镜像标签:推荐使用版本 

 

镜像构建目录:

使用克隆下来的目录 

 

禁用缓存:推荐开启

 

ssh

这里我先提供一个我写好的ssh文件

在使用的时候需要注意参数的修改,其中的注释写的很详细。

#!/bin/bash

# 定义所需参数
export repo="adn-ask"
export name=""
export tag=""

# 获取所有sh参数
# r 仓库地址 n 镜像名称 t 镜像标签
while getopts "r:n:t:" opt; 

# 进行参数赋值
do
  case ${opt} in
    r )
      repo=$OPTARG
      ;;
    n )
      name=$OPTARG
      ;;
    t )
      tag=$OPTARG
      ;;
    \? )
      echo "Invalid option: $OPTARG" 1>&2
      exit 1
      ;;
    : )
      echo "Invalid option: $OPTARG requires an argument" 1>&2
      exit 1
      ;;
  esac
done
# 检查必要参数是否已经输入
if [ -z "${name}" ]; then
  echo "-n 镜像名称  为必传参数"
  exit 1
fi
if [ -z "${tag}" ]; then
  echo "-t 镜像标签 为必传参数"
  exit 1
fi
shift $((OPTIND -1))
# 最后得到docker镜像
export dockerImage="${repo}/${name}:${tag}"

# 停止并删除之前的容器
docker rm -f ${name}

# 删除镜像
docker rmi ${dockerImage}

# 重新下载之前镜像
docker pull ${dockerImage}

# 启动镜像
docker run -d \
 --name ${name} \
 --network dev \
 --privileged=true \
 --restart=always \
 -v $SIXIANG_LOGS/${name}:/home/adn-ask/logs/${name} \
 ${dockerImage}


将写好的sh文件放在服务器的文件夹下面。 

代码如下: 

sh /usr/local/docker/yunseven/restartServer.sh -n -t

 中间的参数是根据sh中的文件进行书写的。

 

 一定要看好自己的路径时候正确。

到这里一个流程就构建完毕了。

流程启动测试

第一次运行因为要下载很多依赖所以有点慢,需要耐心等待一下。

 

 前面都完成了但是在docker镜像这里出现了错误。查看错误日志。

这里是错误日志。

 这个问题表示没有找到dockerfile文件。

 问题的原因是这里的点没有去掉。各位一定要注意。

注意:还有一个问题就是需要dockerHub,这里的dockerHub要么使用私服要么使用官方的dockerHub。这里我们使用dockerHub.

这里第一次会出现这个问题

 根据错误信息来看,这个问题可能是由于在新的服务器上没有登录到私服并创建允许的连接引起的。私服可能需要进行一些特定的身份验证或配置才能与其建立连接。

你可以尝试以下步骤来解决这个问题:

  1. 确保你已经在新的服务器上登录到了私服。你可能需要提供有效的身份验证凭据(用户名和密码、访问令牌等)才能成功登录。

  2. 如果你已经登录到私服但仍然无法连接,请检查服务器的网络设置以确保服务器可以访问私服的地址和端口。你可以尝试使用常见的网络工具(如ping或telnet)来测试服务器与私服之间的连通性。

  3. 如果你使用了代理服务器来访问私服,请确保代理服务器的配置正确,并且服务器能够通过代理访问私服。

配置Docker信任地址
私服采用的是http协议,默认不被Docker信任,所以需要做一个配置

#打开要修改的文件
vi /etc/docker/daemon.json
#添加内容:
{
    "insecure-registries":["http://192.168.0.101:81"]
}
#重新加载
systemctl daemon-reload
#重启docker
systemctl restart docker

配置之后在两个服务器上登录到私服的地址一定要重启

使用代码

 docker login https://ip地址:16000/v2/

输入私服的账号和密码来建立连接!一定要记得重启!

出现这个错误在docker镜像push的时候

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/806703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

百题千解计划【CSDN每日一练】“小明投篮,罚球线投球可得一分”(附解析+多种实现方法:Python、Java、C、C++、C#、Go、JavaScript)

这个心上人,还不知道在哪里,感觉明天就会出现。 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博主🏅 🏆[4] CSDN-人工智能领域优质创作者�…

十八章:用于弱监督语义分割的自监督等变注意力机制

0.摘要 图像级弱监督语义分割是一个具有挑战性的问题,近年来得到了深入研究。大多数先进的解决方案利用类激活图(CAM)。然而,由于全监督和弱监督之间存在差距,CAM几乎无法用作对象掩码。在本文中,我们提出了…

最后的组合:K8s 1.24 基于 Hekiti 实现 GlusterFS 动态存储管理实践

前言 知识点 定级:入门级GlusterFS 和 Heketi 简介GlusterFS 安装部署Heketi 安装部署Kubernetes 命令行对接 GlusterFS 实战服务器配置(架构 1:1 复刻小规模生产环境,配置略有不同) 主机名IPCPU内存系统盘数据盘用途ks-master-0192.168.9.912450100…

王道数据结构-代码实操1(全注解版)

#include<stdio.h>void loveyou(int n){ // 传入参数类型为int型&#xff0c;在此函数中表示为n&#xff1b;返回值类型为void&#xff0c;即没有返回值&#xff1b; int i1; //定义了一个整数型变量i&#xff0c;且只在loveyou函数中有用&#xff1b;while(i…

python环境搭建和pycharm安装

python环境搭建 下载地址&#xff1a;Python Releases for Windows | Python.org 双击安装 选择自定义安装&#xff0c;勾选添加至PATH 配置自定义安装路径 点击disable 长度限制 测试安装 winr ->cmd->python,出现版本号则安装成功 pycharm安装 访问Jetbrains中文官网&a…

linux的C/C++线程池(VS2019开发)

文章目录 一、准备工作二、C语言threadpool实现三、C 11标准实现 代码看视频敲的&#xff0c;非原创 一、准备工作 创建项目 连接linux虚拟机 启动测试&#xff1a;VS2019运行Linux程序报错&#xff1a;无法启动gdb。系统中缺少gdb。sudo yum install -y gdb 线程池的组成主…

【Maven】Maven配置国内镜像

文章目录 1. 配置maven的settings.xml文件1.1. 先把镜像mirror配置好1.2. 再把仓库配置好 2. 在idea中引用3. 参考资料 网上配置maven国内镜像的文章很多&#xff0c;为什么选择我&#xff0c;原因是&#xff1a;一次配置得永生、仓库覆盖广、仓库覆盖全面、作者自用的配置。 1…

matlab使用教程(5)—矩阵定义和基本运算

本博客介绍如何在 MATLAB 中创建矩阵和执行基本矩阵计算。 MATLAB 环境使用矩阵来表示包含以二维网格排列的实数或复数的变量。更广泛而言&#xff0c;数组为向量、矩阵或更高维度的数值网格。MATLAB 中的所有数组都是矩形&#xff0c;在这种意义上沿任何维度的分量向量的长度…

启动Anaconda卡在loading applications的解决办法

启动Anaconda卡在 loading applications的解决办法 问题解决方法 问题 系统环境&#xff1a;macOS BigSur v11.2.2 启动anaconda后&#xff0c;卡在 loading applications界面。 解决方法 在anaconda安装目录下找到conda_api.py文件&#xff0c;将 data yaml.load(f)修改为…

【沐风老师】3dMax子样条线编辑插件SubSpline使用方法详解

3dMax子样条线编辑插件SubSpline&#xff0c;是3dMax中样条曲线形状的高级子对象选择器和材质ID编辑器。 只需一个简单的切换按钮&#xff0c;即可在屏幕上轻松显示所有选定形状的顶点编号和材质ID。 利用箭头工具选择样条曲线子对象&#xff0c;以补充和扩展3dsMax的标准工具…

推荐功能强大的活码管理平台(支持淘宝客和分享卡片)

功能强大的活码管理平台源码-支持淘宝客和分享卡片等功能 演示地址&#xff1a;runruncode.com/code/19494.html 首页 查看群活码、客服码、渠道码当天总访问量查看成员账号个数查看群活码、客服码、渠道码当天各时段访问量 群活码 创建、编辑、删除、分享群活码查看群活码…

使用MyBatis(2)

目录 一、定义接口、实体类、创建XML文件实现接口&#xff09; 二、MyBatis的增删改查 &#x1f345;1、MyBatis传递参数查询 &#x1f388;写法一 &#x1f388;写法二 &#x1f388;两种方式的区别 &#x1f345;2、删除操作 &#x1f345;3、根据id修改用户名 &#x…

推荐带500创作模型的付费创作V2.1.0独立版系统源码

ChatGPT 付费创作系统 V2.1.0 提供最新的对应版本小程序端&#xff0c;上一版本增加了 PC 端绘画功能&#xff0c; 绘画功能采用其他绘画接口 – 意间 AI&#xff0c;本版新增了百度文心一言接口。 后台一些小细节的优化及一些小 BUG 的处理&#xff0c;前端进行了些小细节优…

fasta序列转为数字0和1-python

原始文件&#xff1a; 目标文件&#xff1a; linux版本 #name:lin_convert_fasta_to_01.py #! /usr/bin/env python #usage: python hash-always.py -l 1.list -f 2.txt > out.txt import argparse parser argparse.ArgumentParser(description"Advanced screeni…

训练自己的行文本检测EAST模型

训练自己的行文本检测EAST模型 训练数据格式 训练数据格式

Mybatis初识(一)

一.Mybatis是什么 MyBatis 是一款优秀的持久层框架&#xff0c;它支持自定义SQL、存储过程以及高级映射。MyBatis 去除了几乎所有的JDBC代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的XML或注解来配置,和映射原始类型、接口和Java POJO (Plain Old Java Objects…

UDS诊断协议

UDS本质上是一系列服务的集合&#xff0c;包含6大类&#xff0c;共26种。每种服务都有独立的ID&#xff0c;即SID。 请求 SID(1Byte) 参数 SID(1Byte) Sub-function(1Byte) 参数 SID DID(2Bytes) 响应 肯定响应 SID0x40(1Byte) Sub-function(根据请求是否存在) 参数…

【C++进阶】继承

⭐博客主页&#xff1a;️CS semi主页 ⭐欢迎关注&#xff1a;点赞收藏留言 ⭐系列专栏&#xff1a;C进阶 ⭐代码仓库&#xff1a;C进阶 家人们更新不易&#xff0c;你们的点赞和关注对我而言十分重要&#xff0c;友友们麻烦多多点赞&#xff0b;关注&#xff0c;你们的支持是我…

收集springboot2.6和2.7新功能新特性,以便后续项目中使用

更多功能看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5) : http://122.227.135.243:9888 因为nbcio-boot已经升级到2.7,所以先收集SpringBoot2.6和2.7的新功能,…

数据结构:链表的一些经典的OJ题目

文章目录 写在前面链表OJ调试技巧移除链表元素反转链表链表的中间节点链表中倒数第K个节点链表分割问题 写在前面 本篇为本人学习链表的过程中遇到的典型OJ题&#xff0c;于是整理出来分享思路和便于后续重新学习&#xff0c;每个标题均可跳转至对应习题&#xff0c;大多为Lee…