security: Trivy ko gate banaya, registry asli TLS hostname par, base image patched

This commit is contained in:
devops 2026-09-16 13:58:14 +00:00
parent c06b48be89
commit 8e8c8b086c
4 changed files with 19 additions and 5 deletions

5
.trivyignore Normal file
View File

@ -0,0 +1,5 @@
# Yahan sirf wo CVE daalo jinka business ne risk accept kiya hai.
# Format: ek line me ek CVE id, uske upar comment me kyun aur kab tak.
# Misaal:
# # CVE-2024-12345 - sirf us feature me hai jo hum use nahi karte. Review: 2026-12-01
# CVE-2024-12345

View File

@ -1,5 +1,12 @@
FROM python:3.12-slim FROM python:3.12-slim
# Base image hafton purana ho sakta hai. Security updates yahin laga do,
# warna pipeline ka Trivy gate HIGH/CRITICAL par build rok dega.
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get autoremove -y --purge \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /srv WORKDIR /srv
COPY requirements.txt . COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt RUN pip install --no-cache-dir -r requirements.txt

10
Jenkinsfile vendored
View File

@ -7,7 +7,7 @@ pipeline {
} }
environment { environment {
REGISTRY = '51.195.4.170:5000' REGISTRY = 'ns31240276.ip-51-195-4.eu:5000'
IMAGE_NAME = 'swim/demo-app' IMAGE_NAME = 'swim/demo-app'
VAULT_ADDR = 'http://vault:8200' VAULT_ADDR = 'http://vault:8200'
// Jenkins container ka workspace /var/jenkins_home/... hai, par docker // Jenkins container ka workspace /var/jenkins_home/... hai, par docker
@ -122,15 +122,17 @@ print(' Vault se registry creds mil gaye (user=%s)' % d['username'])
when { expression { env.IS_ROLLBACK != 'true' } } when { expression { env.IS_ROLLBACK != 'true' } }
steps { steps {
sh ''' sh '''
# Trivy ko docker socket chahiye taaki local image scan kar sake. # GATE hai, report nahi: HIGH/CRITICAL mila to build yahin fail hogi.
# Cache volume se dobara download nahi hoga. # Jo CVE business ne accept kiye hain wo .trivyignore me hain.
docker run --rm \ docker run --rm \
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v trivy-cache:/root/.cache/ \ -v trivy-cache:/root/.cache/ \
-v "$PWD/.trivyignore:/.trivyignore:ro" \
aquasec/trivy:0.58.1 image \ aquasec/trivy:0.58.1 image \
--severity ${TRIVY_SEVERITY} \ --severity ${TRIVY_SEVERITY} \
--ignore-unfixed \ --ignore-unfixed \
--exit-code 0 \ --ignorefile /.trivyignore \
--exit-code 1 \
--format table \ --format table \
${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG} ${REGISTRY}/${IMAGE_NAME}:${IMAGE_TAG}
''' '''

View File

@ -5,7 +5,7 @@
gather_facts: true gather_facts: true
vars: vars:
registry: "51.195.4.170:5000" registry: "ns31240276.ip-51-195-4.eu:5000"
image_name: "swim/demo-app" image_name: "swim/demo-app"
image_tag: "{{ lookup('env', 'IMAGE_TAG') | default('latest', true) }}" image_tag: "{{ lookup('env', 'IMAGE_TAG') | default('latest', true) }}"
container_name: "demo-app" container_name: "demo-app"