* Create publish.yml
Autobuild fulcrum docker multiarch image with github actions
* Remove --from clause from Dockerfile to fix the multiarch build. Dockerfile_nobuildx is now unnecessary
This is because hub.docker.com doesn't support buildx multi-platform
builds, so we have to point it to this file rather than the more
advanced Dockerfile.
This commit:
- Adds building docker images for multiple architectures (currently intel, arm64)
using docker `buildx`
- Temporarily modifies the `Dockerfile` to use `ppa:mainnet-pat/opt-qt-5.13.2-bionic`
which is a clone of previously used `ppa:beineri/opt-qt-5.13.2-bionic` but builds
arm64 deb packages as well. Author is contacted to support this in their repo.
- Calin verified that the input source tree and build control files are identical to ~beineri
- Adds librocksdb.a static lib built for arm64 (should be generally useful outside of docker)
Jemalloc is better suited for the memory usage pattern of Fulcrum,
which is allocating/freeing lots of random sized buffers from multiple
threads, resulting in lots of fragmentation.
Jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.
gdb was used to check the malloc symbol comes from libjemalloc.so.1
Docker Hub runs an older version of docker, so we can't use any
newer glibc (>= 2.28) that support the statx syscall. Because of
this we use Ubuntu Bionic as a base, which ships with version 2.27.
When Docker Hub upgrades to Docker >= 18.04 we can use a newer base.