Skip to content
Snippets Groups Projects
Unverified Commit 8b2ce625 authored by Mark Sagi-Kazar's avatar Mark Sagi-Kazar
Browse files

ci: build distroless images

parent 6038af50
No related branches found
No related tags found
No related merge requests found
......@@ -18,6 +18,9 @@ jobs:
- linux/amd64
- linux/arm/v7
- linux/arm64
variant:
- alpine
- distroless
outputs:
version: ${{ steps.details.outputs.version }}
......@@ -37,12 +40,17 @@ jobs:
*) VERSION=sha-${GITHUB_SHA::8};;
esac
VERSION_SUFFIX=""
if [[ "${{ matrix.variant }}" != "alpine" ]]; then
VERSION_SUFFIX="-${{ matrix.variant }}"
fi
TAGS=()
for image in $CONTAINER_IMAGES; do
TAGS+=("${image}:${VERSION}")
TAGS+=("${image}:${VERSION}${VERSION_SUFFIX}")
if [[ "${{ github.event.repository.default_branch }}" == "$VERSION" ]]; then
TAGS+=("${image}:latest")
TAGS+=("${image}:latest${VERSION_SUFFIX}")
fi
done
......@@ -84,6 +92,7 @@ jobs:
push: ${{ github.event_name == 'push' }}
tags: ${{ steps.details.outputs.tags }}
build-args: |
BASE_IMAGE=${{ matrix.variant }}
VERSION=${{ steps.details.outputs.version }}
COMMIT_HASH=${{ steps.details.outputs.commit_hash }}
BUILD_DATE=${{ steps.details.outputs.build_date }}
......@@ -103,12 +112,29 @@ jobs:
runs-on: ubuntu-latest
needs: container-images
if: github.event_name == 'push'
strategy:
matrix:
variant:
- alpine
- distroless
steps:
# Workaround for lack of matrix output support
- name: Calculate container image details
id: details
run: |
VERSION="${{ needs.container-images.outputs.version }}"
if [[ "${{ matrix.variant }}" != "alpine" ]]; then
VERSION="${VERSION}-${{ matrix.variant }}"
fi
echo ::set-output name=version::${VERSION}
- name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@0.2.4
with:
image-ref: "ghcr.io/dexidp/dex:${{ needs.container-images.outputs.version }}"
image-ref: "ghcr.io/dexidp/dex:${{ steps.details.outputs.version }}"
format: "sarif"
output: "trivy-results.sarif"
......
ARG BASEIMAGE=alpine
ARG BASE_IMAGE=alpine
FROM golang:1.17.8-alpine3.14 AS builder
......@@ -44,7 +44,7 @@ RUN wget -O /usr/local/bin/gomplate \
FROM alpine:3.15.4 AS alpine
FROM gcr.io/distroless/static:latest AS distroless
FROM $BASEIMAGE
FROM $BASE_IMAGE
# Dex connectors, such as GitHub and Google logins require root certificates.
# Proper installations should manage those certificates, but it's a bad user
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment