Skip to content

Commit 339f356

Browse files
committed
revert to previous version
1 parent 06543dd commit 339f356

File tree

1 file changed

+47
-92
lines changed

1 file changed

+47
-92
lines changed

scripts/scan_images.sh

Lines changed: 47 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -103,103 +103,58 @@ trivy_tmp_dir="$(mktemp -d -p "$PROJECT_ROOT")"
103103

104104
trap 'rm -rf "$tmp_dir" "$trivy_tmp_dir"' EXIT
105105

106-
# Scan both example and enterprise images
107106
for image in "${IMAGES[@]}"; do
108-
# Process example images (primary)
109-
example_image_ref="codercom/example-${image}:${TAG}"
110-
example_image_name="example-${image}-${TAG}"
111-
example_output="${tmp_dir}/example-${image}-${TAG}.sarif"
112-
113-
if docker image inspect "$example_image_ref" >/dev/null 2>&1; then
114-
old_tmpdir="${TMPDIR:-}"
115-
export TMPDIR="$trivy_tmp_dir"
116-
117-
# The timeout is set to 15 minutes because in Java images it can take a while
118-
# to scan JAR files for vulnerabilities.
119-
run_trace $DRY_RUN trivy image \
120-
--severity CRITICAL,HIGH \
121-
--format sarif \
122-
--output "$example_output" \
123-
--timeout 15m0s \
124-
"$example_image_ref" 2>&1 | indent
125-
126-
if [ "$old_tmpdir" = "" ]; then
127-
unset TMPDIR
128-
else
129-
export TMPDIR="$old_tmpdir"
130-
fi
131-
132-
if [ $DRY_RUN = false ] && [ -f "$example_output" ]; then
133-
# Do substitutions to add extra details to every message. Without these
134-
# substitutions, most messages won't have any information about which image
135-
# the vulnerability was found in.
136-
jq \
137-
".runs[].tool.driver.name |= \"Trivy ${example_image_name}\"" \
138-
"$example_output" >"$example_output.tmp"
139-
mv "$example_output.tmp" "$example_output"
140-
jq \
141-
".runs[].results[].locations[].physicalLocation.artifactLocation.uri |= \"${example_image_name}/\" + ." \
142-
"$example_output" >"$example_output.tmp"
143-
mv "$example_output.tmp" "$example_output"
144-
jq \
145-
".runs[].results[].locations[].message.text |= \"${example_image_name}: \" + ." \
146-
"$example_output" >"$example_output.tmp"
147-
mv "$example_output.tmp" "$example_output"
148-
elif [ $DRY_RUN = false ]; then
149-
echo "No SARIF output found for image '$example_image_ref' at '$example_output'" >&2
150-
exit 1
151-
fi
152-
else
153-
echo "Image '$example_image_ref' does not exist locally; skipping" >&2
107+
image_ref="codercom/enterprise-${image}:${TAG}"
108+
image_name="${image}-${TAG}"
109+
output="${tmp_dir}/${image}-${TAG}.sarif"
110+
111+
if ! docker image inspect "$image_ref" >/dev/null 2>&1; then
112+
echo "Image '$image_ref' does not exist locally; skipping" >&2
113+
continue
154114
fi
155115

156-
# Process enterprise images (alias)
157-
enterprise_image_ref="codercom/enterprise-${image}:${TAG}"
158-
enterprise_image_name="enterprise-${image}-${TAG}"
159-
enterprise_output="${tmp_dir}/enterprise-${image}-${TAG}.sarif"
160-
161-
if docker image inspect "$enterprise_image_ref" >/dev/null 2>&1; then
162-
old_tmpdir="${TMPDIR:-}"
163-
export TMPDIR="$trivy_tmp_dir"
164-
165-
# The timeout is set to 15 minutes because in Java images it can take a while
166-
# to scan JAR files for vulnerabilities.
167-
run_trace $DRY_RUN trivy image \
168-
--severity CRITICAL,HIGH \
169-
--format sarif \
170-
--output "$enterprise_output" \
171-
--timeout 15m0s \
172-
"$enterprise_image_ref" 2>&1 | indent
173-
174-
if [ "$old_tmpdir" = "" ]; then
175-
unset TMPDIR
176-
else
177-
export TMPDIR="$old_tmpdir"
178-
fi
179-
180-
if [ $DRY_RUN = false ] && [ -f "$enterprise_output" ]; then
181-
# Do substitutions to add extra details to every message. Without these
182-
# substitutions, most messages won't have any information about which image
183-
# the vulnerability was found in.
184-
jq \
185-
".runs[].tool.driver.name |= \"Trivy ${enterprise_image_name}\"" \
186-
"$enterprise_output" >"$enterprise_output.tmp"
187-
mv "$enterprise_output.tmp" "$enterprise_output"
188-
jq \
189-
".runs[].results[].locations[].physicalLocation.artifactLocation.uri |= \"${enterprise_image_name}/\" + ." \
190-
"$enterprise_output" >"$enterprise_output.tmp"
191-
mv "$enterprise_output.tmp" "$enterprise_output"
192-
jq \
193-
".runs[].results[].locations[].message.text |= \"${enterprise_image_name}: \" + ." \
194-
"$enterprise_output" >"$enterprise_output.tmp"
195-
mv "$enterprise_output.tmp" "$enterprise_output"
196-
elif [ $DRY_RUN = false ]; then
197-
echo "No SARIF output found for image '$enterprise_image_ref' at '$enterprise_output'" >&2
198-
exit 1
199-
fi
116+
old_tmpdir="${TMPDIR:-}"
117+
export TMPDIR="$trivy_tmp_dir"
118+
119+
# The timeout is set to 15 minutes because in Java images it can take a while
120+
# to scan JAR files for vulnerabilities.
121+
run_trace $DRY_RUN trivy image \
122+
--severity CRITICAL,HIGH \
123+
--format sarif \
124+
--output "$output" \
125+
--timeout 15m0s \
126+
"$image_ref" 2>&1 | indent
127+
128+
if [ "$old_tmpdir" = "" ]; then
129+
unset TMPDIR
200130
else
201-
echo "Image '$enterprise_image_ref' does not exist locally; skipping" >&2
131+
export TMPDIR="$old_tmpdir"
202132
fi
133+
134+
if [ $DRY_RUN = true ]; then
135+
continue
136+
fi
137+
138+
if [ ! -f "$output" ]; then
139+
echo "No SARIF output found for image '$image_ref' at '$output'" >&2
140+
exit 1
141+
fi
142+
143+
# Do substitutions to add extra details to every message. Without these
144+
# substitutions, most messages won't have any information about which image
145+
# the vulnerability was found in.
146+
jq \
147+
".runs[].tool.driver.name |= \"Trivy ${image_name}\"" \
148+
"$output" >"$output.tmp"
149+
mv "$output.tmp" "$output"
150+
jq \
151+
".runs[].results[].locations[].physicalLocation.artifactLocation.uri |= \"${image_name}/\" + ." \
152+
"$output" >"$output.tmp"
153+
mv "$output.tmp" "$output"
154+
jq \
155+
".runs[].results[].locations[].message.text |= \"${image_name}: \" + ." \
156+
"$output" >"$output.tmp"
157+
mv "$output.tmp" "$output"
203158
done
204159

205160
# Merge all SARIF files into one.

0 commit comments

Comments
 (0)