| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- #!/bin/sh
- set -eu
- repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/../.." && pwd)
- cd "$repo_root"
- check_application_security_opt() {
- file=$1
- count=$(
- awk '
- $0 == " sub2api:" {
- in_application = 1
- next
- }
- in_application && $0 ~ /^ [A-Za-z0-9_-]+:$/ {
- in_application = 0
- }
- in_application && $0 == " security_opt:" {
- in_security_opt = 1
- next
- }
- in_application && in_security_opt && $0 == " - no-new-privileges:true" {
- count++
- }
- END { print count + 0 }
- ' "$file"
- )
- if [ "$count" -ne 1 ]; then
- printf '%s must enable no-new-privileges exactly once for the sub2api service\n' "$file" >&2
- exit 1
- fi
- }
- for compose_file in \
- deploy/docker-compose.yml \
- deploy/docker-compose.local.yml \
- deploy/docker-compose.standalone.yml \
- deploy/docker-compose.dev.yml
- do
- check_application_security_opt "$compose_file"
- done
- printf 'docker compose security test passed\n'
|