mirror of
https://github.com/certbot/certbot.git
synced 2026-01-26 07:41:33 +03:00
* Add one Dockerfile for each supported architecture
* Update multi arch hooks
* Create multi arch scripts
* Update README.md
* WIP. Use build args instead of multiple Dockerfiles in build script
* WIP. Fix typo mistake
* Use build args instead of multiple Dockerfiles in build script
* WIP. Build all the architectures in one DockerHub build
* Add arm64v8 architecture
* WIP. Testing build all the architectures in one DockerHub build
* Revert "WIP. Testing build all the architectures in one DockerHub build"
This reverts commit 94a89398a4120b183d2851ac7cb9c93db0e3d187.
* Refactor tag docker images in hooks/post_push files
* Use variables instead of positional arguments
* Export externally used variables
* Use ${variable//search/replace} instead of echo $variable | sed.
* Update README.md
* Add Cleanup in build.sh script
* Fix tagging error in post_push hook
* Add "-ex" flags to bash script
* Test tagging images in build hook
* Tagging in hook/post_build instead of hook/post_push
* Push built architecture dependent image
* Use Dockerfile argument instead of fixed value
* Fix typo
* Use parameter instead of global variable
* Use custom "hook/push" to prevent duplicated push
* Make a short doctype for each function declared in common
64 lines
1.8 KiB
Bash
Executable File
64 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
set -euo pipefail
|
|
IFS=$'\n\t'
|
|
|
|
# This script builds certbot docker and certbot dns plugins docker against a given release version of certbot.
|
|
# The build is done following the environment used by Dockerhub to handle its autobuild feature, and so can be
|
|
# used as a pre-deployment validation test.
|
|
|
|
# Usage: ./build.sh [VERSION]
|
|
# with [VERSION] corresponding to a released version of certbot, like `v0.34.0`
|
|
|
|
trap Cleanup 1 2 3 6
|
|
|
|
Cleanup() {
|
|
if [ ! -z "$WORK_DIR" ]; then
|
|
rm -rf "$WORK_DIR"/core/qemu-*-static || true
|
|
rm -rf "$WORK_DIR"/plugin/qemu-*-static || true
|
|
fi
|
|
popd 2> /dev/null || true
|
|
}
|
|
|
|
Build() {
|
|
DOCKER_REPO="$1"
|
|
CERTBOT_VERSION="$2"
|
|
CONTEXT_PATH="$3"
|
|
DOCKERFILE_PATH="$CONTEXT_PATH/Dockerfile"
|
|
DOCKER_TAG="$CERTBOT_VERSION"
|
|
pushd "$CONTEXT_PATH"
|
|
DOCKER_TAG="$DOCKER_TAG" DOCKER_REPO="$DOCKER_REPO" DOCKERFILE_PATH="$DOCKERFILE_PATH" bash hooks/pre_build
|
|
DOCKER_TAG="$DOCKER_TAG" DOCKER_REPO="$DOCKER_REPO" DOCKERFILE_PATH="$DOCKERFILE_PATH" bash hooks/build
|
|
popd
|
|
}
|
|
|
|
WORK_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
|
|
|
CERTBOT_VERSION="$1"
|
|
|
|
# Step 1: Certbot core Docker
|
|
Build "certbot/certbot" "$CERTBOT_VERSION" "$WORK_DIR/core"
|
|
|
|
# Step 2: Certbot dns plugins Dockers
|
|
CERTBOT_PLUGINS_DOCKER_REPOS=(
|
|
"certbot/dns-dnsmadeeasy"
|
|
"certbot/dns-dnsimple"
|
|
"certbot/dns-ovh"
|
|
"certbot/dns-cloudflare"
|
|
"certbot/dns-cloudxns"
|
|
"certbot/dns-digitalocean"
|
|
"certbot/dns-google"
|
|
"certbot/dns-luadns"
|
|
"certbot/dns-nsone"
|
|
"certbot/dns-rfc2136"
|
|
"certbot/dns-route53"
|
|
"certbot/dns-gehirn"
|
|
"certbot/dns-linode"
|
|
"certbot/dns-sakuracloud"
|
|
)
|
|
|
|
for DOCKER_REPO in "${CERTBOT_PLUGINS_DOCKER_REPOS[@]}"; do
|
|
Build "${DOCKER_REPO}" "$CERTBOT_VERSION" "$WORK_DIR/plugin"
|
|
done
|
|
|
|
Cleanup
|