dockerfile 创建jenkins

下载链接 :Docker Hub

jenkins_for_Centos版本

##这里用的是jenkinsforCentos版本
[root@hy-202 ~]# docker pull jenkins/jenkins:2.316-centos7
​
##push 到本地仓库
[root@hy-202 ~]# docker tag 55b7502f8749 harbor.hy.com/infra/jenkins:2.316-centos7
[root@hy-202 ~]# docker push harbor.hy.com/infra/jenkins:2.316-centos7

push 到本地仓库

##push 到本地仓库
[root@hy-202 ~]# docker tag 55b7502f8749 harbor.hy.com/infra/jenkins:2.316-centos7
[root@hy-202 ~]# docker push harbor.hy.com/infra/jenkins:2.316-centos7

set dockerfile文件

##创建目录
/data/k8s_data/dockerfile/jenkins
##下载get-docker.sh
[root@hy-205 jenkins]# curl -fsSL get.docker.com -o get-docker.sh
[root@hy-205 jenkins]# chmod a+x get-docker.sh
##dockerfile 文件如下
[root@hy-205 jenkins]# cat Dockerfile
FROM harbor.hy.com/infra/jenkins:2.316-centos7
USER root
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&\ echo 'Asia/Shanghai' >/etc/timezone
ADD id_rsa /root/.ssh/id_rsa
ADD config.json /root/.docker/config.json
ADD get-docker.sh /get-docker.sh
RUN echo "    StrictHostKeyChecking no" >> /etc/ssh/ssh_config &&\/get-docker.sh
##执行dockerfile
[root@hy-205 jenkins]# docker build . -t harbor.hy.com/infra/jenkins:2.316-centos7-latest

执行docker build

##执行dockerfile
​
[root@hy-205 jenkins]# docker build . -t harbor.hy.com/infra/jenkins:2.316-centos7-latest
​
##执行成功
Removing intermediate container 6b1edc33acd6---> 17a76f4f8404
Successfully built 17a76f4f8404
Successfully tagged harbor.hy.com/infra/jenkins:2.316-centos7-latest

测试docker ssh 到代码仓库

##测试是否可以链接git@gitee.com
[root@hy-205 jenkins]# docker run --rm harbor.hy.com/infra/jenkins:2.316-centos7-latest ssh -T git@gitee.com
Warning: Permanently added 'gitee.com,180.97.125.228' (ECDSA) to the list of known hosts.
Hi 左丿仔! You've successfully authenticated, but GITEE.COM does not provide shell access.

dockerfile后的push 到本地仓库

[root@hy-205 jenkins]# docker push harbor.hy.com/infra/jenkins:2.316-centos7-latest

测试 kubernetes 上测试

deployment.yaml

kind: Deployment
apiVersion: extensions/v1beta1
metadata:name: jenkinsnamespace: infralabels: name: jenkins
spec:replicas: 1selector:matchLabels: name: jenkinstemplate:metadata:labels: app: jenkins name: jenkinsspec:volumes:- name: datanfs: server: hy-205.host.compath: /data/k8s_data/jenkins-volumes/jenkins_home- name: dockerhostPath: path: /run/docker.socktype: ''containers:- name: jenkins#  image: image: harbor.hy.com/infra/jenkins:2.316-centos7-latest ports:- containerPort: 8080protocol: TCPenv:- name: JAVA_OPTSvalue: -Xmx512m -Xms512mresources:limits: cpu: 2048mmemory: 4Girequests: cpu: 2048mmemory: 4GivolumeMounts:- name: datamountPath: /var/jenkins_home- name: dockermountPath: /run/docker.sockterminationMessagePath: /dev/termination-logterminationMessagePolicy: FileimagePullPolicy: IfNotPresentimagePullSecrets:- name: harborrestartPolicy: AlwaysterminationGracePeriodSeconds: 30securityContext: runAsUser: 0schedulerName: default-schedulerstrategy:type: RollingUpdaterollingUpdate: maxUnavailable: 1maxSurge: 1revisionHistoryLimit: 7progressDeadlineSeconds: 600
service.yaml
service.yamlkind: Service
apiVersion: v1
metadata: name: jenkinsnamespace: infra
spec:ports:- protocol: TCPport: 80targetPort: 8080selector:app: jenkins

ingress.yaml

kind: Ingress
apiVersion: extensions/v1beta1
metadata: name: jenkinsnamespace: infra
spec:rules:- host: jenkins.hy.comhttp:paths:- path: /backend: serviceName: jenkinsservicePort: 80

执行

[root@hy-201 ~]# kubectl apply -f http://k8s.hy.com/kubernetes/yaml/jenkins/service.yaml
service/jenkins created
[root@hy-201 ~]# kubectl apply -f http://k8s.hy.com/kubernetes/yaml/jenkins/ingress.yaml
ingress.extensions/jenkins created
[root@hy-201 ~]# kubectl apply -f http://k8s.hy.com/kubernetes/yaml/jenkins/deployment.yaml

查看logs

[root@hy-201 ~]# kubectl logs -f jenkins-799776766d-qsl8d -n infra
Running from: /usr/share/jenkins/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-10-18 08:36:27.273+0000 [id=1]     INFO    org.eclipse.jetty.util.log.Log#initialized: Logging initialized @2101ms to org.eclipse.jetty.util.log.JavaUtilLog
2021-10-18 08:36:27.627+0000 [id=1]     INFO    winstone.Logger#logInternal: Beginning extraction from war file
2021-10-18 08:36:38.710+0000 [id=1]     WARNING o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2021-10-18 08:36:38.823+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: jetty-9.4.43.v20210629; built: 2021-06-30T11:07:22.254Z; git: 526006ecfa3af7f1a27ef3a288e2bef7ea9dd7e8; jvm 11.0.12+7
2021-10-18 08:36:39.271+0000 [id=1]     INFO    o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2021-10-18 08:36:39.339+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
2021-10-18 08:36:39.339+0000 [id=1]     INFO    o.e.j.s.s.DefaultSessionIdManager#doStart: No SessionScavenger set, using defaults
2021-10-18 08:36:39.340+0000 [id=1]     INFO    o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging every 660000ms
2021-10-18 08:36:40.050+0000 [id=1]     INFO    hudson.WebAppMain#contextInitialized: Jenkins home directory: /var/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2021-10-18 08:36:40.367+0000 [id=1]     INFO    o.e.j.s.handler.ContextHandler#doStart: Started w.@59901c4d{Jenkins v2.316,/,file:///var/jenkins_home/war/,AVAILABLE}{/var/jenkins_home/war}
2021-10-18 08:36:40.420+0000 [id=1]     INFO    o.e.j.server.AbstractConnector#doStart: Started ServerConnector@5af3a0f{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2021-10-18 08:36:40.421+0000 [id=1]     INFO    org.eclipse.jetty.server.Server#doStart: Started @15254ms
2021-10-18 08:36:40.424+0000 [id=23]    INFO    winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2021-10-18 08:36:40.782+0000 [id=30]    INFO    jenkins.InitReactorRunner$1#onAttained: Started initialization
2021-10-18 08:36:40.855+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Listed all plugins
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$2 (file:/var/jenkins_home/war/WEB-INF/lib/guice-4.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
2021-10-18 08:36:42.789+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2021-10-18 08:36:42.796+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Started all plugins
2021-10-18 08:36:42.825+0000 [id=32]    INFO    jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2021-10-18 08:36:43.660+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: System config loaded
2021-10-18 08:36:43.661+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: System config adapted
2021-10-18 08:36:43.661+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2021-10-18 08:36:43.662+0000 [id=31]    INFO    jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2021-10-18 08:36:43.689+0000 [id=46]    INFO    hudson.model.AsyncPeriodicWork#lambda$doRun$0: Started Download metadata
2021-10-18 08:36:43.736+0000 [id=46]    INFO    hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2021-10-18 08:36:45.126+0000 [id=33]    INFO    jenkins.install.SetupWizard#init:
​
*************************************************************
*************************************************************
*************************************************************
​
Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:
​
f0d26899065448de99cee611b6222da4
​
This may also be found at: /var/jenkins_home/secrets/initialAdminPassword
​
*************************************************************
*************************************************************
*************************************************************

web登录查看

jenkins.hy.com

替换成国内的源

##在目录中找到 default.json文件进行低缓
[root@hy-205 updates]# pwd
/data/k8s_data/jenkins-volumes/jenkins_home/updates
##替换成国内的信息
[root@hy-205 updates]# sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
[root@hy-205 updates]# sed -i 's/http:\/\/updates.jenkis-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
[root@hy-205 updates]# pwd
/data/k8s_data/jenkins-volumes/jenkins_home/updates
[root@hy-205 updates]# ##在plugmanager/advanced/最下面替换掉
https://updates.jenkins.io/update-center.json##更新为清华源
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
​
​

kubernetes 用dockerfile 创建jenkins容器相关推荐

  1. dockerfile 创建Jenkins镜像

    最近在学习docker,docker 基础在前面的文章已经讲解. 基本结构: FROM ubuntu:latest MAINTAINER wwyx wwyzxs@163.com WORKDIR /op ...

  2. Kubernetes 集群使用 Jenkins 持续发布

    运行环境准备与相关软件要求 1.生产级 kubernetes 集群 推荐 1.8 以上版本 2.Gitlab docker 镜像 slpcat/gitlab-ce 3.Jenkins docker 镜 ...

  3. 什么是 CD 管道?一文告诉你如何借助Kubernetes、Ansible和Jenkins创建CD管道!

    作者 | Magalix 翻译 | 火火酱,责编 | Carol 来源 | 架构师技术联盟 封图 | CSDN付费下载于IC photo CI/CD要解决的是什么问题? CI/CD(CI全名Conti ...

  4. 什么是 CD 管道?一文告诉你如何借助 Kubernetes、Ansible 和 Jenkins 创建 CD 管道!...

    作者 | Magalix 译者 | 火火酱 责编 | Carol 来源 | 架构师技术联盟 封图 | CSDN付费下载于IC photo CI/CD要解决的是什么问题? CI/CD(CI全名Conti ...

  5. Kubernetes学习笔记三:Docker安装,Docker使用,编写Dockerfile,制作容器镜像,上传docker镜像

    文章目录 Docker的安装 Docker的使用:docker run命令 查看本地存在的镜像:docker images命令 编写Dockerfile,制作容器镜像 docker build制作镜像 ...

  6. 模板会有多层镜像_创建镜像的方法有三种:基于已有镜像的容器创建、基于本地模板导入、基于Dockerfile创建,本博文讲解前两种。基于已有镜像的容器创建该方法是使用docke...

    创建镜像的方法有三种:基于已有镜像的容器创建.基于本地模板导入.基于Dockerfile创建,本博文讲解前两种. 基于已有镜像的容器创建 该方法是使用docker commit命令,其命令格式为: d ...

  7. docker镜像了解(建立私有仓库,基于已有镜像创建,Docker的数据管理) 基于Dockerfile创建,基于本地模板创建,端口映射,容器互联)

    文章目录 docker镜像 制作镜像的过程 基于已有镜像创建 基于本地模板创建 基于Dockerfile创建 Dockerfile操作指令 Docker的数据管理 数据卷 docker的网络通信 容器 ...

  8. kubernetes高级之创建只读文件系统以及只读asp.net core容器

    使用docker创建只读文件系统 容器化部署对应用的运维带来了极大的方便,同时也带来一些新的安全问题需要考虑.比如黑客入侵到容器内,对容器内的系统级别或者应用级别文件进行修改,会造成难以估量的损失.( ...

  9. 为私有Kubernetes集群创建LoadBalancer服务

    MetalLB - 可以为私有 Kubernetes 集群提供LoadBalancer类型的负载均衡支持. 在Kubernetes集群中,可以使用Nodeport.Loadbalancer和Ingre ...

最新文章

  1. python获取maco句柄_python之subprocess模块
  2. layui-弹出层中如何关闭窗口
  3. SLAM常用数据集(2)
  4. 小程序突破五层限制的方法
  5. 获取Linux命令源代码的方法
  6. jquery实现app开发闹钟功能_一款让你真正摆脱懒觉的“闹钟APP软件”
  7. day07_mysql基本操作
  8. 【礼仪大赛常识】 如何成为诱人焦点:晚装穿法有讲究
  9. mysql创建用户删除权限_mysql 用户创建、授权及删除、取消权限操作
  10. 前端求职简历模板,一投即过!
  11. Framework类库
  12. 三星android应用商店,三星应用商店(Galaxy Apps)
  13. 轻量化html编辑器,建站“一气呵成” 推荐7大免费网页编辑器
  14. 机器学习-决策树算法
  15. python列表元素比较大小_python列表怎么比较大小
  16. python关于luminati国外动态代理的使用
  17. Outlook邮件创建的规则失效,可能的原因
  18. FM(Factorization Machine)因式分解机 与 TensorFlow实现 详解
  19. 闭式系统蒸汽管径推荐速度_闭式蒸汽供热系统
  20. android音效的加载方式

热门文章

  1. C语言 火车票信息管理系统
  2. 关于差旅费的账务处理
  3. ISP图像质量调节介绍
  4. JavaScript入门基础学习总结
  5. C语言实现RC4加密算法
  6. 去广外读计算机类还是去广大,广财会计学专业很受考生青睐
  7. 这几款 IDEA 主题也太好看了吧,百看不腻
  8. Java_Web笔记汇总_火热更新中。。。
  9. FFmpeg命令行工具学习(五):FFmpeg 调整音视频播放速度
  10. 公司网站被黑客入侵,怎么应对?