hoellen / docker-nextcloud

All-in-one Nextcloud Docker image. Alpine-based, rootless and simple.
31 stars 5 forks source link

Multi arch support #6

Open waja opened 2 years ago

waja commented 2 years ago

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.

hoellen commented 2 years ago

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

waja commented 2 years ago

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 commented 2 years ago

I opened an issue down at hardened_malloc.

waja commented 2 years ago

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

hoellen commented 2 years ago

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

waja commented 2 years ago

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.