All technological notes.
# update repo
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
sudo yum upgrade -y
# Add required dependencies for the jenkins package
sudo yum install -y fontconfig java-21-openjdk
sudo yum install -y jenkins
# start service
sudo systemctl daemon-reload
sudo systemctl enable jenkins --now
# enable port
sudo firewall-cmd --permanent --add-port=8080/tcp
# get init password
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
# update repo
sudo wget -O /etc/apt/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key
echo "deb [signed-by=/etc/apt/keyrings/jenkins-keyring.asc]" \
https://pkg.jenkins.io/debian-stable binary/ | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null
sudo apt-get update -y
# Add required dependencies for the jenkins package
sudo apt update
sudo apt install -y fontconfig openjdk-21-jre
sudo apt-get install -y jenkins
# start service
sudo systemctl daemon-reload
sudo systemctl enable jenkins --now
# get init password
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
# remove previous version
sudo dnf remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine \
podman \
runc
# install
sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/rhel/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl enable --now docker
# add the current user to docker group
sudo usermod -aG docker "$USER"
# change the current group ID to refresh the current session without reboot
newgrp docker
# pull jenkins image
docker pull jenkins/jenkins
cat > docker-compose.yaml<<EOF
services:
jenkins:
container_name: jenkins
restart: unless-stopped
image: jenkins/jenkins
# privileged: true
# user: root
ports:
- "8080:8080"
volumes:
- ./jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
networks:
- net
networks:
net:
EOF
# create dir for persistence
mkdir -pv jenkins_home
chown $USER:$USER -Rv jenkins_home
sudo docker compose up -d
# get init pwd from log
docker logs jenkins
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk21