Skip to content

Update docker-zeek to use zeek 6.2.1 (#41) #21

Update docker-zeek to use zeek 6.2.1 (#41)

Update docker-zeek to use zeek 6.2.1 (#41) #21

Workflow file for this run

name: Publish Docker Images
on:
push:
branches: [ master ]
paths:
# Paths that trigger a docker image build
- '.github/workflows/docker-build.yml'
- 'etc/**'
- 'share/**'
- 'docker-entrypoint.sh'
- 'Dockerfile'
jobs:
build-arch:
name: Build and push architecture dependent Zeek release
runs-on: ubuntu-latest
strategy:
matrix:
platform: ["linux/amd64", "linux/arm64", "linux/arm/v7"]
version:
# - "3.0.12"
# - "3.2.4"
- "4.0.5"
- "4.2.0"
- "6.2.1"
include:
# Extra data for arch
- platform: linux/amd64
os: linux
arch: amd64
- platform: linux/arm64
os: linux
arch: arm64
- platform: linux/arm/v7
os: linux
arch: arm
# Extra data for versions
# - version: "3.0.12"
# af-packet: "2.1.2"
# zkg: "2.7.1"
# release-tag: v3-lts
# - version: "3.2.4"
# af-packet: "2.1.2"
# zkg: "2.7.1"
# release-tag: v3-latest
- version: "4.0.5"
af-packet: "3.0.2"
zkg: "2.12.0"
release-tag: v4-lts
- version: "4.2.0"
af-packet: "3.0.2"
zkg: "2.12.0"
release-tag: v4-latest
- version: "6.2.1"
zkg: "3.0.1"
release-tag: latest
- version: "6.2.1"
zkg: "3.0.1"
release-tag: lts
steps:
-
name: Checkout code
uses: actions/checkout@v2
-
name: Set up QEMU # used for arm64 builds
uses: docker/setup-qemu-action@v1
-
name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
-
name: Parse semver string # allows multiple docker tags like lts-amd64-linux, 3.0.0-amd64-linux, 3.0-amd64-linux, and 3-amd64-linux
id: semver_parser
uses: booxmedialtd/ws-action-parse-semver@v1
with:
input_string: "${{ matrix.version }}"
-
name: Prepare Docker tags # allows multiple docker tags like lts-amd64-linux, 3.0.0-amd64-linux, 3.0-amd64-linux, and 3-amd64-linux
id: prep
run: |
DOCKER_IMAGE=activecm/zeek
# e.g. lts-amd64-linux or latest-amd64-linux
TAGS="${DOCKER_IMAGE}:${{ matrix.release-tag }}-${{ matrix.arch }}-${{ matrix.os }}"
if [[ "${{ matrix.release-tag }}" =~ "lts" ]]; then
# e.g. 3-amd64-linux
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}-${{ matrix.arch }}-${{ matrix.os }}"
fi
# e.g. 3.0-amd64-linux
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}-${{ matrix.arch }}-${{ matrix.os }}"
# e.g. 3.0.0-amd64-linux
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}.${{ steps.semver_parser.outputs.patch }}-${{ matrix.arch }}-${{ matrix.os }}"
# make tags available to other actions steps as ${{ steps.prep.outputs.tags }}
echo ::set-output name=tags::${TAGS}
-
name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ matrix.version }}-${{ matrix.arch }}-${{ matrix.os }}
restore-keys: |
${{ runner.os }}-buildx-
-
name: Build Docker image
uses: docker/build-push-action@v2
with:
platforms: ${{ matrix.platform }}
tags: ${{ steps.prep.outputs.tags }}
build-args: |
ZEEK_VERSION=${{ matrix.version }}
AF_PACKET_VERSION=${{ matrix.af-packet }}
ZKG_VERSION=${{ matrix.zkg }}
push: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,mode=max,dest=/tmp/.buildx-cache
build-multiarch:
name: Build and push multi-archictecture Zeek release
runs-on: ubuntu-latest
needs: build-arch
strategy:
matrix:
version:
# - "3.0.12"
# - "3.2.4"
- "4.0.5"
- "4.2.0"
- "6.2.1"
include:
# Extra data for versions
# - version: "3.0.12"
# release-tag: v3-lts
# - version: "3.2.4"
# release-tag: v3-latest
- version: "4.0.5"
release-tag: v4-lts
- version: "4.2.0"
release-tag: v4-latest
- version: "6.2.1"
release-tag: latest
- version: "6.2.1"
release-tag: lts
steps:
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
-
name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
-
name: Parse semver string # allows multiple docker tags like 3.0.0, 3.0, and 3
id: semver_parser
uses: booxmedialtd/ws-action-parse-semver@v1
with:
input_string: "${{ matrix.version }}"
-
name: Prepare Docker tags # allows multiple docker tags like 3.0.0, 3.0, and 3
id: prep
run: |
DOCKER_IMAGE=activecm/zeek
# e.g. lts or latest
TAGS="${DOCKER_IMAGE}:${{ matrix.release-tag }}"
if [[ "${{ matrix.release-tag }}" =~ "lts" ]]; then
# e.g. 3
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}"
fi
# e.g. 3.0
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}"
# e.g. 3.0.0
TAGS="$TAGS,${DOCKER_IMAGE}:${{ steps.semver_parser.outputs.major }}.${{ steps.semver_parser.outputs.minor }}.${{ steps.semver_parser.outputs.patch }}"
# make tags available to other actions steps as ${{ steps.prep.outputs.tags }}
echo ::set-output name=tags::${TAGS}
-
name: Build multi-architecture manifest
run: |
TAGS="${{ steps.prep.outputs.tags }}"
for image_tag in ${TAGS//,/ }; do
docker manifest create ${image_tag} \
${image_tag}-amd64-linux \
${image_tag}-arm64-linux \
${image_tag}-arm-linux
docker manifest push ${image_tag}
done