docker-nextcloud icon indicating copy to clipboard operation
docker-nextcloud copied to clipboard

Multi arch support

Open waja opened this issue 4 years ago • 6 comments

Hi @hoellen,

what do you think about multi arch builds? This can be done with little effort with github actions and uploaded to ghcr. The downside of this is, that builds needs more time the more archs are added to the pipeline.

If you like, I can propose a PR.

Chears, Jan.

waja avatar Dec 10 '21 17:12 waja

Yes, I would happily merge such a PR. The longer build time is negligible.

hoellen avatar Dec 11 '21 13:12 hoellen

Looks like malloc has issues on 32 bit arch ... seen this on i386 and armv6 (other not tested yet):

 > [linux/arm/v6 build-malloc 2/2] RUN apk --no-cache add build-base git gnupg && cd /tmp  && wget -q https://github.com/thestinger.gpg && gpg --import thestinger.gpg  && git clone --depth 1 --branch 8 https://github.com/GrapheneOS/hardened_malloc  && cd hardened_malloc && git verify-tag $(git describe --tags)  && make CONFIG_NATIVE=false:
#79 69.56 gpg: WARNING: This key is not certified with a trusted signature!
#79 69.56 gpg:          There is no indication that the signature belongs to the owner.
#79 69.56 Primary key fingerprint: 65EE FE02 2108 E2B7 08CB  FCF7 F9E7 12E5 9AF5 F22A
#79 76.54 cc  -std=c11 -O3 -flto -fPIC -fvisibility=hidden -fno-plt -fstack-clash-protection -fstack-protector-strong -pipe -Wall -Wextra -Wcast-align=strict -Wcast-qual -Wwrite-strings -Werror -Wmissing-prototypes  -D_GNU_SOURCE -I include -DCONFIG_SEAL_METADATA=false -DZERO_ON_FREE=true -DWRITE_AFTER_FREE_CHECK=true -DSLOT_RANDOMIZE=true -DSLAB_CANARY=true -DSLAB_QUARANTINE_RANDOM_LENGTH=1 -DSLAB_QUARANTINE_QUEUE_LENGTH=1 -DCONFIG_EXTENDED_SIZE_CLASSES=true -DCONFIG_LARGE_SIZE_CLASSES=true -DGUARD_SLABS_INTERVAL=1 -DGUARD_SIZE_DIVISOR=2 -DREGION_QUARANTINE_RANDOM_LENGTH=256 -DREGION_QUARANTINE_QUEUE_LENGTH=1024 -DREGION_QUARANTINE_SKIP_THRESHOLD=33554432  -DFREE_SLABS_QUARANTINE_RANDOM_LENGTH=32 -DCONFIG_CLASS_REGION_SIZE=34359738368  -DN_ARENA=4 -DCONFIG_STATS=false  -c -o chacha.o chacha.c
#79 79.02 In file included from chacha.h:4,
#79 79.02                  from chacha.c:5:
#79 79.02 util.h:39:18: error: '__int128' is not supported on this target
#79 79.02    39 | typedef unsigned __int128 u128;
#79 79.02       |                  ^~~~~~~~
#79 80.33 make: *** [<builtin>: chacha.o] Error 1

Any idea?

waja avatar Dec 13 '21 08:12 waja

I opened an issue down at hardened_malloc.

waja avatar Dec 14 '21 05:12 waja

@hoellen okay ... since hardened_malloc is not intended for 32 bit arch, how to deal with this?

waja avatar Dec 14 '21 12:12 waja

Mmh... I vote for only supporting 64bit architecture. That still gives us support for many devices. Everything else introduces unnecessary complexity.

hoellen avatar Jan 13 '22 18:01 hoellen

Unfortunately archs beside amd64 are failing with exit code 137 (https://github.com/waja/docker-nextcloud/runs/4855481160?check_suite_focus=true#step:11:5105) which seems to be an issue with memory shortage of the running container (it has 6.5 GiB) when installing packages in the nextcloud image.

waja avatar Jan 18 '22 16:01 waja