Add README for Jenkins Shared Library: Docker Build & Push Steps
This commit is contained in:
82
README.md
Normal file
82
README.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Jenkins Shared Library: Docker Build & Push Steps
|
||||
|
||||
This Jenkins shared library provides reusable steps for building and pushing Docker images from your pipelines.
|
||||
|
||||
## 📦 Included Steps
|
||||
|
||||
| Step | Description |
|
||||
|---------------|----------------------------------------|
|
||||
| `dockerBuild` | Builds a Docker image |
|
||||
| `dockerPush` | Pushes a Docker image to a registry |
|
||||
|
||||
Each step is implemented as a Global Variable, making them directly usable in declarative pipelines.
|
||||
|
||||
---
|
||||
|
||||
## 🧩 How to Set Up in Jenkins
|
||||
|
||||
### 1. Push the Library to a Git Repository
|
||||
|
||||
Host this repository in a Git server accessible to your Jenkins instance (e.g. GitHub, GitLab, Gitea, etc.).
|
||||
|
||||
---
|
||||
|
||||
### 2. Register the Library in Jenkins
|
||||
|
||||
Go to **Manage Jenkins → Configure System → Global Pipeline Libraries**, then click **Add**.
|
||||
|
||||
Fill in the following:
|
||||
|
||||
- **Name**: `mylib` (or any name you'd like to reference in Jenkinsfiles)
|
||||
- **Default version**: `main` (or specify a tag/branch)
|
||||
- **Retrieval method**: Modern SCM
|
||||
- **Source Code Management**: Git
|
||||
- **Project Repository**: `https://your.git.repo/jenkins-shared-library.git`
|
||||
- **Credentials**: (only if private)
|
||||
|
||||
Click **Save**.
|
||||
|
||||
---
|
||||
|
||||
## ✅ How to Use in Your Jenkinsfile
|
||||
|
||||
In any Jenkins pipeline, include the shared library using `@Library` and then call the steps:
|
||||
|
||||
```groovy
|
||||
@Library('mylib') _
|
||||
|
||||
pipeline {
|
||||
agent any
|
||||
|
||||
environment {
|
||||
DOCKER_REGISTRY = 'your.registry.example.com'
|
||||
IMAGE_NAME = 'your/image-name'
|
||||
IMAGE_TAG = "${DOCKER_REGISTRY}/${IMAGE_NAME}:${params.BUILD_ID}"
|
||||
}
|
||||
|
||||
parameters {
|
||||
string(name: 'BUILD_ID', defaultValue: 'latest', description: 'Docker image tag')
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Build Docker Image') {
|
||||
steps {
|
||||
dockerBuild(
|
||||
imageName: "${IMAGE_TAG}",
|
||||
dockerfile: "deployments/docker/Dockerfile",
|
||||
context: "deployments/docker"
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Docker Image') {
|
||||
steps {
|
||||
dockerPush(
|
||||
imageName: "${IMAGE_TAG}",
|
||||
registry: "${DOCKER_REGISTRY}",
|
||||
credentialsId: "your-docker-credentials-id"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user