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"