Skip to content

Commit 1944112

Browse files
committed
use specific trivyignore
1 parent 4cd5eac commit 1944112

10 files changed

Lines changed: 1084 additions & 11 deletions

File tree

.github/workflows/build_multi_arch_image.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -53,12 +53,19 @@ jobs:
5353
run: |
5454
make install-node
5555
- name: Build container
56-
run: >
56+
run: |
5757
make build-image
58-
5958
docker tag "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:latest" "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-${ARCHITECTURE}"
60-
6159
docker save "ghcr.io/nhsdigital/eps-devcontainers/${CONTAINER_NAME}:${DOCKER_TAG}-${ARCHITECTURE}" -o "eps-devcontainer-${CONTAINER_NAME}-${DOCKER_TAG}-${ARCHITECTURE}.img"
60+
61+
# create combined trivy ignore file for use in trivy scan, combining common and specific ignore files if they exist
62+
combined="src/${CONTAINER_NAME}/.trivyignore_combined.yaml"
63+
common="src/common/.trivyignore.yaml"
64+
specific="src/${CONTAINER_NAME}/.trivyignore.yaml"
65+
echo "vulnerabilities:" > "$combined"
66+
if [ -f "$common" ]; then sed -n '2,$p' "$common" >> "$combined"; fi
67+
if [ -f "$specific" ]; then sed -n '2,$p' "$specific" >> "$combined"; fi
68+
6269
env:
6370
ARCHITECTURE: '${{ matrix.arch }}'
6471
DOCKER_TAG: '${{ inputs.docker_tag }}'
@@ -81,15 +88,11 @@ jobs:
8188
format: "json"
8289
output: "scan_results_docker.json"
8390
exit-code: "0"
84-
trivy-config: trivy.yaml
85-
- name: find scan results
86-
run: |
87-
ls -lart
88-
find . -name "scan_results_docker.json"
91+
trivy-config: src/${{ inputs.container_name }}/trivy.yaml
8992
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f
9093
name: Upload scan results
9194
with:
92-
name: "scan_results_docker_${{ matrix.arch }}.json"
95+
name: "scan_results_docker_${{ inputs.container_name }}_${{ matrix.arch }}.json"
9396
path: scan_results_docker.json
9497
- name: Check docker vulnerabilities - table output
9598
uses: aquasecurity/trivy-action@b6643a29fecd7f34b3597bc6acb0a98b03d33ff8
@@ -102,7 +105,7 @@ jobs:
102105
format: "table"
103106
output: "scan_results_docker.txt"
104107
exit-code: "1"
105-
trivy-config: trivy.yaml
108+
trivy-config: src/${{ inputs.container_name }}/trivy.yaml
106109

107110
- name: Show docker vulnerability output
108111
if: always()

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
node_modules/
22
.venv/
33
src/base/.devcontainer/language_versions/
4+
.trivyignore_combined.yaml

Makefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,15 @@ build-image: guard-CONTAINER_NAME guard-BASE_VERSION
2424
--image-name "${CONTAINER_PREFIX}$${CONTAINER_NAME}"
2525

2626
scan-image: guard-CONTAINER_NAME
27+
@combined="src/$${CONTAINER_NAME}/.trivyignore_combined.yaml"; \
28+
common="src/common/.trivyignore.yaml"; \
29+
specific="src/$${CONTAINER_NAME}/.trivyignore.yaml"; \
30+
echo "vulnerabilities:" > "$$combined"; \
31+
if [ -f "$$common" ]; then sed -n '2,$$p' "$$common" >> "$$combined"; fi; \
32+
if [ -f "$$specific" ]; then sed -n '2,$$p' "$$specific" >> "$$combined"; fi
2733
trivy image \
2834
--severity HIGH,CRITICAL \
29-
--ignorefile .trivyignore.yaml \
35+
--config src/${CONTAINER_NAME}/trivy.yaml \
3036
--scanners vuln \
3137
--exit-code 1 \
3238
--format table "${CONTAINER_PREFIX}$${CONTAINER_NAME}"

src/base/.trivyignore.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
vulnerabilities:

src/base/trivy.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ignorefile: "src/base/.trivyignore_combined.yaml"

0 commit comments

Comments
 (0)