Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to build multi-platform builds #7507

Open
toby-griffiths opened this issue Dec 16, 2024 · 3 comments
Open

Unable to build multi-platform builds #7507

toby-griffiths opened this issue Dec 16, 2024 · 3 comments

Comments

@toby-griffiths
Copy link

Description

On various PHP based projects I'm unable to build container images for non-linux/arm64 platforms. Every time I do it seems to result in a different compile error.

I've tried using the default builder context with containerd storage on, as well as using a custom build context, but with the same problems either way.

The point at which it fails appears to be inconsistent.

Reproduce

# syntax = docker/dockerfile:1.0-experimental

# the different stages of this Dockerfile are meant to be built into separate images
# https://docs.docker.com/develop/develop-images/multistage-build/#stop-at-a-specific-build-stage
# https://docs.docker.com/compose/compose-file/#target


# https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
ARG BASE_COMPOSER_IMAGE
ARG BASE_PHP_IMAGE
ARG BASE_OPENRESTY_IMAGE
ARG BASE_SSH_IMAGE
ARG BASE_MONGODB_IMAGE
ARG BASE_VARNISH_IMAGE


# "composer" container
# --------------------
# Since we can't use env vars within the --from flag of the COPY command we need to 'build' the composer image here
FROM ${BASE_COMPOSER_IMAGE} as api_platform_composer


# "php" container
# -------------
FROM ${BASE_PHP_IMAGE} AS api_platform_php

LABEL uk.co.goodcrm-owner="Good Technologies Ltd"
LABEL uk.co.goodcrm.platform="good-crm"
LABEL uk.co.goodcrm.platform-component="api"
LABEL uk.co.goodcrm.technology="php"

# Security patches
RUN apk upgrade --no-cache

# persistent / runtime deps
RUN apk add --no-cache \
		acl \
		fcgi \
		file \
		gettext \
		git \
		gnu-libiconv \
	;

# install gnu-libiconv and set LD_PRELOAD env to make iconv work fully on Alpine image.
# see https://github.com/docker-library/php/issues/240#issuecomment-763112749
ENV LD_PRELOAD /usr/lib/preloadable_libiconv.so

ARG APCU_VERSION=5.1.18
ARG MAILPARSE_VERSION=3.1.1
ARG MONGODB_VERSION=1.9.0

RUN set -eux; \
	apk add --no-cache --virtual .build-deps \
		$PHPIZE_DEPS \
		icu-dev \
		libzip-dev \
		zlib-dev \
		openssl-dev \
	; \
	\
	docker-php-ext-configure zip; \
	docker-php-ext-install -j$(nproc) \
		intl \
		pdo_mysql \
		zip \
	; \
	pecl install \
		apcu-${APCU_VERSION} \
		mailparse-${MAILPARSE_VERSION} \
		mongodb-${MONGODB_VERSION} \
	; \
	pecl clear-cache; \
	docker-php-ext-enable \
		apcu \
		mailparse \
		mongodb \
		opcache \
	; \
	\
	runDeps="$( \
		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \
			| tr ',' '\n' \
			| sort -u \
			| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' \
	)"; \
	apk add --no-cache --virtual .api-phpexts-rundeps $runDeps; \
	\
	apk del .build-deps

# There are more steps, but the above step is the one that it fails somewhere within every time.
docker buildx build \
    --target api_platform_php \
    --cache-to type=inline \
    --platform linux/amd64,linux/arm64 \
    --build-arg BASE_COMPOSER_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/composer:latest \
    --build-arg BASE_PHP_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/php:7.4-fpm-alpine \
    --build-arg BASE_OPENRESTY_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/openresty/openresty:1.17.8.2-alpine \
    --build-arg BASE_SSH_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/alpine:3 \
    --build-arg BASE_MONGODB_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/mongo:4.4 \
    --build-arg BASE_VARNISH_IMAGE=gitlab.com/good-technologies/dependency_proxy/containers/varnish:6.4 \
    --build-arg CACHE_BUST_RANDOM_KEY=6760a880a147e5.83688969 \
    --tag good-technologies/crm/api/php:dev \
    --progress=plain \
    --secret id=php-secrets,src=.secrets/php/.secrets .

And here's the resulting log…

[TRUNCATED DUE TO FIELD LENGTH LIMITS]



#24 [linux/amd64 api_platform_php 4/24] RUN set -eux; 	apk add --no-cache --virtual .build-deps 		autoconf 		dpkg-dev dpkg 		file 		g++ 		gcc 		libc-dev 		make 		pkgconf 		re2c 		icu-dev 		libzip-dev    		zlib-dev 		openssl-dev 	; 		docker-php-ext-configure zip; 	docker-php-ext-install -j$(nproc) 		intl 		pdo_mysql 		zip 	; 	pecl install 		apcu-5.1.18 		mailparse-3.1.1 		mongodb-1.9.0 	; 	pecl clear-cache;   	docker-php-ext-enable 		apcu 		mailparse 		mongodb 		opcache 	; 		runDeps="$( 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions 			| tr ',' '\n' 			| sort -u 	| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' 	)"; 	apk add --no-cache --virtual .api-phpexts-rundeps $runDeps; 		apk del .build-deps
#24 ERROR: process "/bin/sh -c set -eux; \tapk add --no-cache --virtual .build-deps \t\t$PHPIZE_DEPS \t\ticu-dev \t\tlibzip-dev \t\tzlib-dev \t\topenssl-dev \t; \t\tdocker-php-ext-configure zip; \tdocker-php-ext-install -j$(nproc) \t\tintl \t\tpdo_mysql \t\tzip \t; \tpecl install \t\tapcu-${APCU_VERSION} \t\tmailparse-${MAILPARSE_VERSION} \t\tmongodb-${MONGODB_VERSION} \t; \tpecl clear-cache; \tdocker-php-ext-enable \t\tapcu \t\tmailparse \t\tmongodb \t\topcache \t; \t\trunDeps=\"$( \t\tscanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \t\t\t| tr ',' '\\n' \t\t\t| sort -u \t\t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t)\"; \tapk add --no-cache --virtual .api-phpexts-rundeps $runDeps; \t\tapk del .build-deps" did not complete successfully: exit code: 2
------
 > [linux/amd64 api_platform_php 4/24] RUN set -eux; 	apk add --no-cache --virtual .build-deps 		autoconf 		dpkg-dev dpkg 		file 		g++ 		gcc 		libc-dev 		make 		pkgconf 		re2c 		icu-dev 		libzip-dev    		zlib-dev 		openssl-dev 	; 		docker-php-ext-configure zip; 	docker-php-ext-install -j$(nproc) 		intl 		pdo_mysql 		zip 	; 	pecl install 		apcu-5.1.18 		mailparse-3.1.1 		mongodb-1.9.0 	; 	pecl clear-cache;   	docker-php-ext-enable 		apcu 		mailparse 		mongodb 		opcache 	; 		runDeps="$( 		scanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions 			| tr ',' '\n' 			| sort -u 	| awk 'system("[ -e /usr/local/lib/" $1 " ]") == 0 { next } { print "so:" $1 }' 	)"; 	apk add --no-cache --virtual .api-phpexts-rundeps $runDeps; 		apk del .build-deps:
36.64  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/collator/collator_attr.c  -fPIC -DPIC -o collator/.libs/collator_attr.o
36.66 Illegal instruction
36.67  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/collator/collator_compare.c  -fPIC -DPIC -o collator/.libs/collator_compare.o
36.68  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/collator/collator_convert.c  -fPIC -DPIC -o collator/.libs/collator_convert.o
36.68  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/intl_error.c  -fPIC -DPIC -o .libs/intl_error.o
36.74  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/collator/collator_locale.c  -fPIC -DPIC -o collator/.libs/collator_locale.o
36.77  cc -DU_NO_DEFAULT_INCLUDE_UTF_HEADERS=1 -DU_HIDE_OBSOLETE_UTF_OLD_H=1 -DU_DEFINE_FALSE_AND_TRUE=1 -Wno-write-strings -D__STDC_LIMIT_MACROS -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -I. -I/usr/src/php/ext/intl -DPHP_ATOM_INC -I/usr/src/php/ext/intl/include -I/usr/src/php/ext/intl/main -I/usr/src/php/ext/intl -I/usr/local/include/php -I/usr/local/include/php/main -I/usr/local/include/php/TSRM -I/usr/local/include/php/Zend -I/usr/local/include/php/ext -I/usr/local/include/php/ext/date/lib -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DHAVE_CONFIG_H -fstack-protector-strong -fpic -fpie -O2 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -c /usr/src/php/ext/intl/collator/collator_class.c  -fPIC -DPIC -o collator/.libs/collator_class.o
37.82 /usr/lib/gcc/x86_64-alpine-linux-musl/11.2.1/../../../../x86_64-alpine-linux-musl/bin/ld: cannot find : No such file or directory
37.83 collect2: error: ld returned 1 exit status
37.83 make: *** [Makefile:202: collator/collator_sort.lo] Error 1
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
ERROR: failed to solve: process "/bin/sh -c set -eux; \tapk add --no-cache --virtual .build-deps \t\t$PHPIZE_DEPS \t\ticu-dev \t\tlibzip-dev \t\tzlib-dev \t\topenssl-dev \t; \t\tdocker-php-ext-configure zip; \tdocker-php-ext-install -j$(nproc) \t\tintl \t\tpdo_mysql \t\tzip \t; \tpecl install \t\tapcu-${APCU_VERSION} \t\tmailparse-${MAILPARSE_VERSION} \t\tmongodb-${MONGODB_VERSION} \t; \tpecl clear-cache; \tdocker-php-ext-enable \t\tapcu \t\tmailparse \t\tmongodb \t\topcache \t; \t\trunDeps=\"$( \t\tscanelf --needed --nobanner --format '%n#p' --recursive /usr/local/lib/php/extensions \t\t\t| tr ',' '\\n' \t\t\t| sort -u \t\t\t| awk 'system(\"[ -e /usr/local/lib/\" $1 \" ]\") == 0 { next } { print \"so:\" $1 }' \t)\"; \tapk add --no-cache --virtual .api-phpexts-rundeps $runDeps; \t\tapk del .build-deps" did not complete successfully: exit code: 2

Expected behavior

The image should build successfully.

If I remove the --platform & --cache-to i can then use the standard build context, without containerd enabled, and it builds fine.

docker version

Client: Docker Engine - Community
 Version:           27.3.1
 API version:       1.45 (downgraded from 1.47)
 Go version:        go1.23.1
 Git commit:        ce1223035a
 Built:             Fri Sep 20 11:01:47 2024
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.31.0 (153195)
 Engine:
  Version:          26.1.4
  API version:      1.45 (minimum version 1.24)
  Go version:       go1.21.11
  Git commit:       de5c9cf
  Built:            Wed Jun  5 11:29:12 2024
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          1.6.33
  GitCommit:        d2d58213f83a351ca8f528a95fbd145f5654e957
 runc:
  Version:          1.1.12
  GitCommit:        v1.1.12-0-g51d5e94
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

docker info

Client: Docker Engine - Community
 Version:    27.3.1
 Context:    desktop-linux
 Debug Mode: false
 Plugins:
  buildx: Docker Buildx (Docker Inc.)
    Version:  v0.14.1-desktop.1
    Path:     /Users/toby/.docker/cli-plugins/docker-buildx
  compose: Docker Compose (Docker Inc.)
    Version:  2.31.0
    Path:     /opt/homebrew/lib/docker/cli-plugins/docker-compose
  debug: Get a shell into any image or container (Docker Inc.)
    Version:  0.0.32
    Path:     /Users/toby/.docker/cli-plugins/docker-debug
  dev: Docker Dev Environments (Docker Inc.)
    Version:  v0.1.2
    Path:     /Users/toby/.docker/cli-plugins/docker-dev
  extension: Manages Docker extensions (Docker Inc.)
    Version:  v0.2.24
    Path:     /Users/toby/.docker/cli-plugins/docker-extension
  feedback: Provide feedback, right in your terminal! (Docker Inc.)
    Version:  v1.0.5
    Path:     /Users/toby/.docker/cli-plugins/docker-feedback
  init: Creates Docker-related starter files for your project (Docker Inc.)
    Version:  v1.2.0
    Path:     /Users/toby/.docker/cli-plugins/docker-init
  sbom: View the packaged-based Software Bill Of Materials (SBOM) for an image (Anchore Inc.)
    Version:  0.6.0
    Path:     /Users/toby/.docker/cli-plugins/docker-sbom
  scout: Docker Scout (Docker Inc.)
    Version:  v1.9.3
    Path:     /Users/toby/.docker/cli-plugins/docker-scout

Server:
 Containers: 37
  Running: 24
  Paused: 0
  Stopped: 13
 Images: 181
 Server Version: 26.1.4
 Storage Driver: overlay2
  Backing Filesystem: extfs
  Supports d_type: true
  Using metacopy: false
  Native Overlay Diff: true
  userxattr: false
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Cgroup Version: 2
 Plugins:
  Volume: local
  Network: bridge host ipvlan macvlan null overlay
  Log: awslogs fluentd gcplogs gelf journald json-file local splunk syslog
 Swarm: inactive
 Runtimes: io.containerd.runc.v2 runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: d2d58213f83a351ca8f528a95fbd145f5654e957
 runc version: v1.1.12-0-g51d5e94
 init version: de40ad0
 Security Options:
  seccomp
   Profile: unconfined
  cgroupns
 Kernel Version: 6.6.31-linuxkit
 Operating System: Docker Desktop
 OSType: linux
 Architecture: aarch64
 CPUs: 12
 Total Memory: 7.657GiB
 Name: docker-desktop
 ID: a4d0d51e-5982-4409-b1de-b5a2437a1e5b
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 HTTP Proxy: http.docker.internal:3128
 HTTPS Proxy: http.docker.internal:3128
 No Proxy: hubproxy.docker.internal
 Labels:
  com.docker.desktop.address=unix:///Users/toby/Library/Containers/com.docker.docker/Data/docker-cli.sock
 Experimental: false
 Insecure Registries:
  hubproxy.docker.internal:5555
  127.0.0.0/8
 Live Restore Enabled: false

WARNING: daemon is not using the default seccomp profile

Diagnostics ID

CED5B7F6-7A03-4A91-BD9D-8E75B357F576/20241216223749

Additional Info

No response

@toby-griffiths
Copy link
Author

The base images here just use Gitlab's dependency proxy, and the images are just replicas of the same image without the gitlab.com/good-technologies/dependency_proxy/containers/ part.

I've just tred running without the gitlab.com/good-technologies/dependency_proxy/containers/ prefixes but seems there's a docker hub auth issue…

------
 > [api_platform_php 1/24] FROM docker.io/library/7.4-fpm-alpine:latest:
------
WARNING: No output specified with docker-container driver. Build result will only remain in the build cache. To push result image into registry use --push or to load image into docker use --load
ERROR: failed to solve: failed to load cache key: pull access denied, repository does not exist or may require authorization: server message: insufficient_scope: authorization failed

I've tried docker pulling the image, but that didn't help. I suspect because the build context does not have access to my auth creds, perhaps?

@toby-griffiths
Copy link
Author

toby-griffiths commented Dec 16, 2024

Correction. I'd stripped too much out. Having changed BASE_PHP_IMAGE to php:7.4-fpm-alpine it worker fine (for a single platform build using the default build context).

So here's a command without the dependency proxy, although most of these build args are used later in the file but are in because the Dockerfile contains them at the top…

docker buildx build \
    --target api_platform_php \
    --platform linux/amd64,linux/arm64 \
    --cache-to type=inline \
    --build-arg BASE_COMPOSER_IMAGE=composer:latest \
    --build-arg BASE_PHP_IMAGE=php:7.4-fpm-alpine \
    --build-arg BASE_OPENRESTY_IMAGE=openresty/openresty:1.17.8.2-alpine \
    --build-arg BASE_SSH_IMAGE=alpine:3 \
    --build-arg BASE_MONGODB_IMAGE=mongo:4.4 \
    --build-arg BASE_VARNISH_IMAGE=varnish:6.4 \
    --build-arg CACHE_BUST_RANDOM_KEY=6760a880a147e5.83688969 \
    --tag good-technologies/crm/api/php:dev \
    --progress=plain \
    --secret id=php-secrets,src=.secrets/php/.secrets .

… and here's the one that works, without the platform/cache-to args…

docker buildx build \
    --target api_platform_php \
    --build-arg BASE_COMPOSER_IMAGE=composer:latest \
    --build-arg BASE_PHP_IMAGE=php:7.4-fpm-alpine \
    --build-arg BASE_OPENRESTY_IMAGE=openresty/openresty:1.17.8.2-alpine \
    --build-arg BASE_SSH_IMAGE=alpine:3 \
    --build-arg BASE_MONGODB_IMAGE=mongo:4.4 \
    --build-arg BASE_VARNISH_IMAGE=varnish:6.4 \
    --build-arg CACHE_BUST_RANDOM_KEY=6760a880a147e5.83688969 \
    --tag good-technologies/crm/api/php:dev \
    --progress=plain \
    --secret id=php-secrets,src=.secrets/php/.secrets .

@toby-griffiths
Copy link
Author

I created a repo to demo the problem…

https://github.com/toby-griffiths/docker-for-mac--7507

@bsousaa bsousaa changed the title Unable to build mulit-platform builds Unable to build multi-platform builds Dec 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants