docker安装定制gocd-agent

news2024/9/28 19:08:42

一、定制gocd-agent

FROM gocd/gocd-agent-alpine-3.12:v21.1.0
MAINTAINER xxx "xxx@163.com"
# 切换到 root 用户
USER root
# 安装 expect、jdk、docker
RUN apk update && apk add expect && apk add openjdk8 && apk add docker && apk add openrc && apk add maven && apk add make
# 将 entrypoint.sh 复制到容器中
COPY entrypoint.sh .
# 给脚本添加执行权限
RUN chmod +x entrypoint.sh
# 容器启动时执行脚本
ENTRYPOINT ["/entrypoint.sh"]
# 切换到 go 用户
USER go
FROM gocd/gocd-agent-alpine-3.12:v21.1.0
MAINTAINER xxx "xxx@163.com"
# 切换到 root 用户
USER root
# 安装 expect、jdk、docker
RUN apk update && apk add expect && apk add openjdk17 && apk add docker && apk add openrc && apk add maven && apk add make
# 将 entrypoint.sh 复制到容器中
COPY entrypoint.sh .
# 给脚本添加执行权限
RUN chmod +x entrypoint.sh
# 容器启动时执行脚本
ENTRYPOINT ["/entrypoint.sh"]
# 切换到 go 用户
USER go

很多人会想为什么要把openjdk8、maven、make等命令打包到docker容器里面,因为docker容器里面是不带这些命令的,但是我们在打包部署的时候需要用到这些命令。所以需要把这些命令一起打成镜像,一起部署。

上面打了两个镜像一个是openjdk8,一个是openjdk17的,但是在打openjdk17的时候会报如下的错。

首先在docker里面使用apk add openjdk17来安装,使用的是apk包管理器,在alpine:v3.12的版本里面是没有openjdk17的,如果你安装openjdk8是没有问题的,安装openjdk17所以才会报上面那个错误。那怎么办呢?

http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz

http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEx.tar.gz

这个时候需要换alpine的版本了,在agent.dockerfile文件里面添加

RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.16/main/" > /etc/apk/repositories && echo "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/" >> /etc/apk/repositories

然后再每个apk的后面加上--allow-untrusted。

最终的脚本就是这样的。

FROM gocd/gocd-agent-alpine-3.12:v21.1.0
MAINTAINER xxx "xxx@163.com"
# 切换到 root 用户
USER root
RUN echo "http://dl-cdn.alpinelinux.org/alpine/v3.16/main/" > /etc/apk/repositories && echo "http://dl-cdn.alpinelinux.org/alpine/v3.16/community/" >> /etc/apk/repositories
# 安装 expect、jdk、docker
RUN apk update --allow-untrusted && apk add expect --allow-untrusted && apk add openjdk17-jdk --allow-untrusted && apk add docker --allow-untrusted && apk add openrc --allow-untrusted && apk add maven --allow-untrusted && apk add make --allow-untrusted 
# 将 entrypoint.sh 复制到容器中
COPY entrypoint.sh .
# 给脚本添加执行权限
RUN chmod +x entrypoint.sh
# 容器启动时执行脚本
ENTRYPOINT ["/entrypoint.sh"]
# 切换到 go 用户
USER go

vi entrypoint.sh

#!/bin/bash

# 将 docker.sock 授权给 go 用户,否则 docker 命令无法正常工作
chown go /var/run/docker.sock
# 启动 gocd-agent 程序
bash /docker-entrypoint.sh

构建新的gocd-agent

docker build -f agent.dockerfile -t gocd-agent-xxx .
docker pull xxx/gocd-agent-xxx

一、安装gocd-agent

docker run --name gocd-agent -d -e GO_SERVER_URL=http://ip:port/go xxx/gocd-agent-xxx:latest

二、安装完之后,可以启动gocd-server。

http://ip:port/

然后开始点击“Pipeline”。

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

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

相关文章

XML传参方式

export function groupLoginAPI(xmlData) {return http.post(/tis/group/1.0/login, xmlData, {headers: {Content-Type: application/xml,X-Requested-With: AAServer/4.0,}}) }import {groupLoginAPI} from "../api/user"; function (e) { //xml格式传参let groupX…

anaconda离线安装包的方法

当设备没有网络时,可以使用有网络的设备先下载所需安装包,然后离线拷贝到需要安装的设备,最后安装。 一. 下载所需安装包 下载命令:使用pip download。详细描述参见pip download -h 以"blind-watermark"为例。 pip …

【Linux】理解系统中一个被打开的文件

文件系统 前言一、C语言文件接口二、系统文件接口三、文件描述符四、struct file 对象五、stdin、stdout、stderr六、文件描述符的分配规则七、重定向1. 重定向的原理2. dup23. 重谈 stderr 八、缓冲区1. 缓冲区基础2. 深入理解缓冲区3. 用户缓冲区和内核缓冲区4. FILE 前言 首…

查看域控组策略是否在客户端生效

要查看域控制器上的组策略是否已在客户端生效,可以按照以下步骤操作: 使用 RSOP (Resultant Set of Policy): 在客户端计算机上,以管理员身份打开命令提示符或者 PowerShell,并运行 gpresult /h GPReport.html 或 gpresult /v 命令…

10MHz 到 80MHz、10:1 LVDS 并串转换器(串化器)/串并转换器(解串器)MS1023/MS1224

产品简述 MS1023 串化器和 MS1224 解串器是一对 10bit 并串 / 串并转 换芯片,用于在 LVDS 差分底板上传输和接收 10MHz 至 80MHz 的并行字速率的串行数据。起始 / 停止位加载后,转换为负载编 码输出,串行数据速率介于 120Mbps…

Python实现利用仅有像素级标注的json文件生成框标注的json文件,并存放到新文件夹

import json import os # create rectangle labels based on polygon labels, and store in a new folder def create_rectangle_shapes(polygon_shapes):rectangle_shapes []for polygon_shape in polygon_shapes:# 获取多边形的坐标点points polygon_shape[points]# 找到最…

监测Tomcat项目宕机重启脚本(Linux)

1.准备好写好的脚本 #!/bin/sh # 获取tomcat的PID TOMCAT_PID$(ps -ef | grep tomcat | grep -v tomcatMonitor |grep -v grep | awk {print $2}) # tomcat的启动文件位置 START_TOMCAT/mnt/tomcat/bin/startup.sh # 需要监测的一个GET请求地址 MONITOR_URLhttp://localhost:…

消息总线在微服务中的应用

直连式配置中心 上一篇文章介绍了 Spring Cloud 中的分布式配置组件 Config,每个服务节点可以从Config Server 拉取外部配置信息。但是似乎还有一个悬而未决的问题,那就是当服务节点数量非常庞大的时候,我们不可能一台一台服务器挨个去手工触…

django+flask警务案件信息管理系统python-5dg53-vue

1)用户在后台页面各种操作可及时得到反馈。 (2)该平台是提供给多个用户使用的平台,警员使用之前需要注册登录。登录验证后,警员才可进行各种操作[10]。 (3)管理员用户拥有信息新增,修…

计算机二级C语言的注意事项及相应真题-2-程序修改

目录 11.找出n的所有因子,统计因子的个数,并判断n 是否是”完数”12.计算s所指字符串中含有t所指字符串的数目13.将一个由八进制数字组成的字符串转换为与其面值相等的十进制整数14.根据整型形参m的值,计算如下公式的值15.从低位开始依次取长…

Springboot多种方法处理静态资源:设置并访问静态资源目录

~目录嗷~ 静态文件application设置方法 配置详解编写配置优缺点 设置配置类方法 配置详解编写配置优缺点 总结 作者:Mintimate 博客:https://www.mintimate.cn Mintimate’s Blog,只为与你分享 静态文件 静态资源&…

Pycharm python用matplotlib 3D绘图显示空白解决办法

问题原因: matplotlib版本升级之后显示代码变了,修改为新的 # ax Axes3D(fig) # 原代码 ax fig.add_axes(Axes3D(fig)) # 新代码import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Ax…

pytest的常用插件和Allure测试报告

pytest常用插件 pytest-html插件 安装: pip install pytest-html -U 用途: 生成html的测试报告 用法: ​在.ini配置文件里面添加 addopts --htmlreport.html --self-contained-html 效果: 执行结果中存在html测试报告路…

前端工程化之:webpack1-8(loader)

一、loader webpack 做的事情,仅仅是分析出各种模块的依赖关系,然后形成资源列表,最终打包生成到指定的文件中。 更多的功能需要借助 webpack loaders (加载器)和 webpack plugins (插件)完成。 webpack loader : loader 本质上是…

【Java开发岗面试】八股文—微服务、消息中间件

声明: 背景:本人为24届双非硕校招生,已经完整经历了一次秋招,拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验(主要是校招),包括我自己总结的八股文、算法、项目介绍、HR面和面试…

python 基础知识点(蓝桥杯python科目个人复习计划32)

今日复习内容:基础算法中的位运算 1.简介 位运算就是对二进制进行操作的运算方式,分为与运算,或运算,异或运算,取反,左移和右移。 (1)与运算 xyx&y000010100111 (2)或运算 …

OpenHarmony—Hap包签名工具

概述 为了保证OpenHarmony应用的完整性和来源可靠,在应用构建时需要对应用进行签名。经过签名的应用才能在真机设备上安装、运行、和调试。developtools_hapsigner仓 提供了签名工具的源码,包含密钥对生成、CSR文件生成、证书生成、Profile文件签名、Ha…

【安装指南】maven下载、安装与配置详细教程

🌼一、概述 maven功能与python的pip类似。 Apache Maven是一个用于软件项目管理和构建的强大工具。它是基于项目对象模型的,用于描述项目的构建配置和依赖关系。以下是一些关键的 Maven 特性和概念: POM(Project Object Model&…

MATLAB知识点:矩阵的拼接和重复

​讲解视频:可以在bilibili搜索《MATLAB教程新手入门篇——数学建模清风主讲》。​ MATLAB教程新手入门篇(数学建模清风主讲,适合零基础同学观看)_哔哩哔哩_bilibili 节选自第3章 3.3.4 矩阵的拼接和重复 有时候我们需要对多个矩…

云原生Kubernetes: Ubuntu 安装 K8S 1.23版本(单Master架构) 及故障恢复

目录 一、实验 1.环境 2.安装 Ubuntu 3.连接Ubuntu 4.master节点安装docker 5.node节点安装docker 6.master节点安装K8S 7.添加K8S工作节点 8.安装网络插件calico 9.故障 10.故障恢复 11.测试k8s网络和coredns 二、问题 1.Ubuntu如何修改镜像源 2.Ubuntu和Windo…