mirror of
https://github.com/ansible-collections/community.docker.git
synced 2026-07-29 19:57:58 +00:00
Add health check test image. (#918)
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) Ansible Project
|
||||
# GNU General Public License v3.0+ (see LICENSES/GPL-3.0-or-later.txt or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
# SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
if [ ! -e main.go ]; then
|
||||
echo "Must be run in a directory that contains main.go."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
PROGRAMS="main is-healthy make-healthy"
|
||||
|
||||
set -eux
|
||||
IMAGE_NAME="${1:-localhost/$(basename "$(pwd)"):latest}"
|
||||
podman manifest rm "${IMAGE_NAME}" || true
|
||||
podman image rm "${IMAGE_NAME}" || true
|
||||
buildah manifest create "${IMAGE_NAME}"
|
||||
for ARCH in amd64 arm64; do
|
||||
for PROGRAM in ${PROGRAMS}; do
|
||||
rm -f "${PROGRAM}-${ARCH}"
|
||||
GOARCH="${ARCH}" go build -ldflags "-s -w" -o "${PROGRAM}-${ARCH}" "${PROGRAM}.go"
|
||||
done
|
||||
|
||||
# Need format=docker for health checks to work
|
||||
WORKING_CONTAINER="$(buildah from --arch "${ARCH}" --format docker scratch)"
|
||||
for PROGRAM in ${PROGRAMS}; do
|
||||
buildah copy "${WORKING_CONTAINER}" "${PROGRAM}-${ARCH}" "/${PROGRAM}"
|
||||
done
|
||||
buildah config --entrypoint '["/main"]' "${WORKING_CONTAINER}"
|
||||
buildah config --healthcheck /is-healthy "${WORKING_CONTAINER}"
|
||||
buildah config --healthcheck-interval 1s "${WORKING_CONTAINER}"
|
||||
buildah config --healthcheck-retries 1 "${WORKING_CONTAINER}"
|
||||
buildah config --healthcheck-start-period 10s "${WORKING_CONTAINER}"
|
||||
buildah commit --format docker --manifest "${IMAGE_NAME}" "${WORKING_CONTAINER}"
|
||||
|
||||
for PROGRAM in ${PROGRAMS}; do
|
||||
rm -f "${PROGRAM}-${ARCH}"
|
||||
done
|
||||
done
|
||||
Reference in New Issue
Block a user