File tree Expand file tree Collapse file tree 2 files changed +20
-21
lines changed Expand file tree Collapse file tree 2 files changed +20
-21
lines changed Original file line number Diff line number Diff line change 33 - .dind
44 image : ghcr.io/code0-tech/build-images/reticulum-builder:207.1-ruby-3.2.2
55 stage : container
6+ variables :
7+ PLATFORM_ARGS : " --platform linux/amd64,linux/arm64"
68 script :
79 - source support/helpers.sh
810 - docker_login
11+ - docker_setup_multi_arch
912 - ' image=$(echo "$CI_JOB_NAME" | cut -d : -f 2)'
1013 - ' [ -z "$NEED_PROJECT_DOWNLOAD" ] || download_project $image'
1114 retry :
1720 - .image-build-base
1821 script :
1922 - !reference [.image-build-base, script]
20- - build_image $image $CI_PIPELINE_ID
21- - push_image $image $CI_PIPELINE_ID
23+ - build_image $image $CI_PIPELINE_ID "--push"
2224
2325.variant-image-build-base :
2426 extends :
2527 - .image-build-base
2628 script :
2729 - !reference [.image-build-base, script]
28- - build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT"
29- - image_tag=$(get_image_tag $CI_PIPELINE_ID $VARIANT)
30- - retag_image $image $CI_PIPELINE_ID $image_tag
31- - push_image $image $image_tag
30+ - build_image $image $CI_PIPELINE_ID "--build-arg VARIANT=$VARIANT --push" $(get_image_tag $CI_PIPELINE_ID $VARIANT)
3231
3332container:mise :
3433 extends :
Original file line number Diff line number Diff line change @@ -13,10 +13,22 @@ function docker_login() {
1313 echo $C0_GH_TOKEN | docker login -u $ --password-stdin ghcr.io
1414}
1515
16+ function docker_setup_multi_arch() {
17+ docker context create build-context
18+ docker buildx create \
19+ --name container-builder \
20+ --driver docker-container \
21+ --bootstrap \
22+ --use \
23+ build-context
24+ docker run --privileged --rm tonistiigi/binfmt --install all
25+ }
26+
1627function build_image() {
1728 image=$1
1829 reticulum_tag=$2
1930 build_args=$3
31+ reticulum_push_tag=${4:- $reticulum_tag }
2032
2133 echo " Building image for $image "
2234
@@ -25,27 +37,15 @@ function build_image() {
2537 container/$image /renderDockerfile
2638 fi
2739
28- docker build \
29- -t " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " \
40+ docker buildx build \
41+ -t " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_push_tag " \
3042 -f " container/$image /Dockerfile" \
3143 --build-arg RETICULUM_IMAGE_TAG=$reticulum_tag \
3244 $build_args \
45+ $PLATFORM_ARGS \
3346 .
3447}
3548
36- function push_image() {
37- image=$1
38- reticulum_tag=$2
39- docker push " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag "
40- }
41-
42- function retag_image() {
43- image=$1
44- reticulum_tag=$2
45- variant_tag=$3
46- docker image tag " ghcr.io/code0-tech/reticulum/ci-builds/$image :$reticulum_tag " " ghcr.io/code0-tech/reticulum/ci-builds/$image :$variant_tag "
47- }
48-
4949function get_image_tag() {
5050 reticulum_tag=$1
5151 reticulum_variant=$2
You can’t perform that action at this time.
0 commit comments