launch ubuntu ec2
Perform the following steps in ubuntu ec2
sudo apt update -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update -y
apt-cache policy docker-ce
sudo apt install docker-ce -y
sudo systemctl status docker
check docker version: docker version
check docker commands: docker
Create Docker Volume for Data and Log
sudo docker volume create jenkins-data
sudo docker volume create jenkins-log
sudo docker volume ls
Install Jenkins with Docker
create docker folder
Create Dockerfile
FROM jenkins/jenkins
LABEL maintainer="partha.abdas@gmail.com"
USER root
RUN mkdir /var/log/jenkins
RUN mkdir /var/cache/jenkins
RUN chown -R jenkins:jenkins /var/log/jenkins
RUN chown -R jenkins:jenkins /var/cache/jenkins
USER jenkins
ENV JAVA_OPTS="-Xmx8192m"
ENV JENKINS_OPTS="--logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war"
cd docker
sudo docker build -t <image-name>:1.0 .
sudo docker images
Run Jenkins Container with Data and Log Volume
sudo docker run -p 8080:8080 -p 50000:50000 \
--name=jenkins-master \
--mount source=jenkins-log,target=/var/log/jenkins \
--mount source=jenkins-data,target=/var/jenkins_home \
-d <image-name>:1.0
sudo docker ps
sudo docker exec jenkins-master tail -f /var/log/jenkins/jenkins.log
http://public-ip:8080
docker login
sudo docker tag devsecops-jenkins:1.0 partha2019/devsecops-jenkins:1.0
sudo docker push partha2019/devsecops-jenkins:1.0
Please make sure the uploaded images exists in dockerhub
Download to another Instance
launch another ubuntu machine and install docker using above commands
Create Docker Volume for Data and Log
sudo docker volume create jenkins-data
sudo docker volume create jenkins-log
sudo docker volume ls
docker pull partha2019/devsecops-jenkins:1.0
sudo docker run -p 8080:8080 -p 50000:50000 --name=devsecops-may2023 -d partha2019/devsecops-may2023:1.0