Are you sure you want to delete this access key?
This repo contains:
docker-compose
.$ docker-compose up --build
Creating JenkinsDocker ... done
Creating JenkinsServer ... done
The docker-compose.yaml
file defines following components:
docker:dind
container to enable running docker inside docker.networks:
jenkins:
driver: bridge # Defines bridge network to be used by services defined later.
services:
jenkins_docker:
image: docker:dind
networks:
jenkins:
aliases:
- docker # Defines to use jenkins network defined above also under the alias name `docker`.
container_name: JenkinsDocker
privileged: true
environment:
- DOCKER_TLS_CERTDIR=/certs
ports:
- "2376:2376" # Exposes docker serveer port 2376 to be used by jenkins server container at "tcp://docker:2376".
volumes:
- ./jenkins-docker-certs:/certs/client # Docker client certs.
- ./jenkins-data:/var/jenkins_home # Preserves Jenkins data like job definitions, credentials, build logs, etc.
- ./extras:/extras # Any extra data or files you want to cache between server restart can be saved here `/extras/`.
services:
jenkins_server:
build:
context: # Build container from the custom Dockerfile defined in the repo.
networks:
- jenkins # Use jenkins network defined earlier
container_name: JenkinsServer
restart: always
environment: # Define docker env variable to connect to docker-engine defined in JenkinsDocker container.
- DOCKER_HOST=tcp://docker:2376
- DOCKER_CERT_PATH=/certs/client
- DOCKER_TLS_VERIFY=1
ports:
- "8080:8080" # For UI
- "50000:50000" # For API
volumes:
- ./jenkins-data:/var/jenkins_home:rw # Docker client certs.
- ./jenkins-docker-certs:/certs/client:ro # Preserves Jenkins data like job definitions, credentials, build logs, etc.
- ./extras:/extras:rw # Any extra data or files you want to cache between server restart can be saved here `/extras/`.
We have customised docker image jenkins/jenkins:lts-slim
in the Dockerfile to
FROM jenkins/jenkins:lts-slim
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
apt-transport-https \
ca-certificates curl gnupg2 \
software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN apt-key fingerprint 0EBFCD88
RUN add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable"
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins blueocean:1.24.3
$ tree -aL 1
.
├── .dockerignore # Contains file patterns to ignore, while creating docker context
├── .git
├── .gitignore # Ignores docker volume mounts
├── Dockerfile
├── LICENSE
├── Readme.md
├── docker-compose.yaml
├── docker-data
├── extras # extras volume mount
├── jenkins-data # Jenkins build logs, etc volume mount
└── jenkins-docker-certs # docker certs volume mount
Press p or to see the previous file or, n or to see the next file
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?
Are you sure you want to delete this access key?