Browse Source

Jenkins personalizado con Docker

main
Celestino Rey 6 months ago
parent
commit
afa62bcd90
6 changed files with 86 additions and 3 deletions
  1. +37
    -0
      Imagen/Dockerfile
  2. +7
    -0
      Imagen/Makefile
  3. +28
    -0
      Makefile
  4. +2
    -2
      jenkins-02-volume.yaml
  5. +4
    -1
      jenkins-03-deployment.yaml
  6. +8
    -0
      reg-secret.yaml

+ 37
- 0
Imagen/Dockerfile View File

@ -0,0 +1,37 @@
# Use Jenkins base image
FROM jenkins/jenkins:latest
# Switch to root user
USER root
# Update package lists and install necessary tools
RUN apt-get update && \
apt-get install -y sudo vim curl wget
# Set root password
RUN echo 'root:abc123' | chpasswd
# Add jenkins user to sudoers
RUN echo "jenkins ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# Install Docker CLI
RUN apt-get update
RUN apt-get install -y apt-transport-https \
ca-certificates \
curl \
gnupg2 \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker.gpg
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable" && apt-get update
RUN curl -fsSL https://get.docker.com/ | sh
# Create the Docker Group
# RUN groupadd docker
# Add Jenkins User to Docker Group
RUN usermod -aG docker jenkins
# Switch back to the Jenkins user
USER jenkins

+ 7
- 0
Imagen/Makefile View File

@ -0,0 +1,7 @@
install:
echo "Creando imagen con version '${IMG_VERSION}' en el registry '${REGISTRY}'"
docker build --no-cache -t ${REGISTRY}/jenkins-docker:${IMG_VERSION} .
docker push ${REGISTRY}/jenkins-docker:${IMG_VERSION}

+ 28
- 0
Makefile View File

@ -0,0 +1,28 @@
#export ARQUITECTURA := $(shell lscpu |grep itectur | tr -d ' '| cut -f2 -d':')
export REGISTRY=registry.reymota.es
export IMG_VERSION = 1.20
# limpia todo
all: imagen clean install
imagen:
cd Imagen/; make
install:
-kubectl create -f namespace.yaml
-kubectl create -f reg-secret.yaml
-kubectl create -f jenkins-01-serviceAccount.yaml
-kubectl create -f jenkins-02-volume.yaml
-envsubst < jenkins-03-deployment.yaml |kubectl create -f -
-kubectl create -f jenkins-04-service.yaml
-kubectl create -f jenkins-05-ingress.yaml
clean:
-kubectl delete -f jenkins-05-ingress.yaml
-kubectl delete -f jenkins-04-service.yaml
-envsubst < jenkins-03-deployment.yaml |kubectl delete -f -
-kubectl delete -f jenkins-02-volume.yaml
-kubectl delete -f jenkins-01-serviceAccount.yaml
-kubectl delete -f reg-secret.yaml
-kubectl delete -f namespace.yaml

+ 2
- 2
jenkins-02-volume.yaml View File

@ -21,7 +21,7 @@ spec:
accessModes: accessModes:
- ReadWriteOnce - ReadWriteOnce
local: local:
path: /mnt/Externo/Jenkins
path: /Users/creylopez/RancherStorage/Jenkins
nodeAffinity: nodeAffinity:
required: required:
nodeSelectorTerms: nodeSelectorTerms:
@ -29,7 +29,7 @@ spec:
- key: kubernetes.io/hostname - key: kubernetes.io/hostname
operator: In operator: In
values: values:
- imac
- lima-rancher-desktop
--- ---
apiVersion: v1 apiVersion: v1
kind: PersistentVolumeClaim kind: PersistentVolumeClaim


+ 4
- 1
jenkins-03-deployment.yaml View File

@ -19,7 +19,8 @@ spec:
serviceAccountName: jenkins-admin serviceAccountName: jenkins-admin
containers: containers:
- name: jenkins - name: jenkins
image: jenkins/jenkins:lts
# image: jenkins/jenkins:lts
image: $REGISTRY/jenkins-docker:$IMG_VERSION
# OPTIONAL: check for new floating-tag LTS releases whenever the pod is restarted: # OPTIONAL: check for new floating-tag LTS releases whenever the pod is restarted:
imagePullPolicy: Always imagePullPolicy: Always
resources: resources:
@ -53,6 +54,8 @@ spec:
volumeMounts: volumeMounts:
- name: jenkins-data - name: jenkins-data
mountPath: /var/jenkins_home mountPath: /var/jenkins_home
imagePullSecrets:
- name: myregistrykey
volumes: volumes:
- name: jenkins-data - name: jenkins-data
persistentVolumeClaim: persistentVolumeClaim:


+ 8
- 0
reg-secret.yaml View File

@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: myregistrykey
namespace: devops-tools
data:
.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJyZWdpc3RyeS5yZXltb3RhLmVzIjogewoJCQkiYXV0aCI6ICJZM0psZVd4dmNHVjZPbEpsZVMweE1UYzIiCgkJfQoJfQp9
type: kubernetes.io/dockerconfigjson

Loading…
Cancel
Save