include:
- 'include/vars.yml'
.build:
image:
name: "moby/buildkit:v0.12.2-rootless"
entrypoint: ["sh", "-c"]
variables:
BUILDCTL_CONNECT_RETRIES_MAX: 5
BUILDKITD_FLAGS: --oci-worker-no-process-sandbox
DOCKER_BUILDKIT: 1
BUILDER_SOURCE_FOLDER: ""
BUILDER_IMAGE_TAG: "$ORACLE_LINUX_VERSION-$CI_COMMIT_SHORT_SHA"
BUILDER_PATH: "$CI_PROJECT_PATH/$BUILDER_SOURCE_FOLDER"
BUILDER_CACHE: "$REGISTRY_HOST/$BUILDER_PATH"
before_script:
- git config --global --add safe.directory $CI_PROJECT_DIR
- mkdir -p ~/.docker
- echo "{\"auths\":{\"$REGISTRY_HOST\":{\"username\":\"$REGISTRY_USER\",\"password\":\"$REGISTRY_PASSWORD\"}}}" > $HOME/.docker/config.json
interruptible: true
script:
- |
folder="$BUILDER_SOURCE_FOLDER"
if [[ ! -f "$folder/Dockerfile" ]]; then
echo "Nothing build. Dockefile not found..."
exit 1
fi
cd $folder
buildctl-daemonless.sh build \
--progress=plain \
--frontend=dockerfile.v0 \
--local context=. \
--local dockerfile=. \
$(for arg in $(env | grep "BUILDER_ARG_*" | sed 's/BUILDER_ARG_//'); do echo --opt build-arg:"$arg"; done) \
--output type=image,name="$REGISTRY_HOST/$BUILDER_PATH:$BUILDER_IMAGE_TAG",push=true \
--export-cache type=inline \
--import-cache type=registry,ref="$BUILDER_CACHE"