diff --git a/resources/docker-images/android/Dockerfile b/resources/docker-images/android/Dockerfile index 2b289ce077..489284b08c 100644 --- a/resources/docker-images/android/Dockerfile +++ b/resources/docker-images/android/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. ARG BASE_VERSION=default diff --git a/resources/docker-images/base/Dockerfile b/resources/docker-images/base/Dockerfile index 3c254edfad..de5a82fcf0 100644 --- a/resources/docker-images/base/Dockerfile +++ b/resources/docker-images/base/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. ARG DISTRO=ubuntu diff --git a/resources/docker-images/build.sh b/resources/docker-images/build.sh index 53f83d3e00..b650b9ce55 100755 --- a/resources/docker-images/build.sh +++ b/resources/docker-images/build.sh @@ -46,6 +46,7 @@ build_action() { # shellcheck disable=SC2164 cd "${platform}" + export DOCKER_BUILDKIT=1 # shellcheck disable=SC2248,SC2086 docker build ${OPTION_NO_CACHE:-} -t "keymanapp/keyman-${platform}-ci:${build_version}" "${build_args[@]}" . # If the user didn't specify particular versions we will additionaly create an image @@ -67,6 +68,7 @@ test_action() { ":${platform}" -- ./build.sh configure,build,test:"${platform}" } +check_buildx_available check_for_default_values convert_parameters_to_args diff --git a/resources/docker-images/core/Dockerfile b/resources/docker-images/core/Dockerfile index a29cac8e04..8b3e2b4c7a 100644 --- a/resources/docker-images/core/Dockerfile +++ b/resources/docker-images/core/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. # # ARGS used in this file: diff --git a/resources/docker-images/developer/Dockerfile b/resources/docker-images/developer/Dockerfile index 3771526c4d..aaec7b55cf 100644 --- a/resources/docker-images/developer/Dockerfile +++ b/resources/docker-images/developer/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. # # ARGS used in this file: diff --git a/resources/docker-images/docker-build.inc.sh b/resources/docker-images/docker-build.inc.sh index 4bd9275d75..855ba6e641 100644 --- a/resources/docker-images/docker-build.inc.sh +++ b/resources/docker-images/docker-build.inc.sh @@ -59,3 +59,15 @@ check_for_default_values() { is_default_values() { ${is_default_values} } + +# Check that `docker buildx` is available +check_buildx_available() { + if ! docker --help | grep -q buildx; then + if [[ "${OSTYPE:-}" == "linux-gnu" ]]; then + builder_echo error "Docker buildx is not available. Please install Docker buildx to use this script. e.g. 'sudo apt install docker-buildx'" + else + builder_echo error "Docker buildx is not available. Please install Docker buildx to use this script." + fi + exit 1 + fi +} diff --git a/resources/docker-images/linux/Dockerfile b/resources/docker-images/linux/Dockerfile index 061e9f619b..da6bf59906 100644 --- a/resources/docker-images/linux/Dockerfile +++ b/resources/docker-images/linux/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. ARG BASE_VERSION=default diff --git a/resources/docker-images/web/Dockerfile b/resources/docker-images/web/Dockerfile index 1f08daf92c..655a2d8592 100644 --- a/resources/docker-images/web/Dockerfile +++ b/resources/docker-images/web/Dockerfile @@ -1,3 +1,4 @@ +# syntax=docker/dockerfile:1.4 # Keyman is copyright (C) SIL Global. MIT License. # # ARGS used in this file: