mirror of
https://github.com/logos-messaging/logos-messaging-nim.git
synced 2026-01-08 17:03:09 +00:00
feat: add multi-arch Dockerfiles and scripts
This commit is contained in:
parent
dab5120a97
commit
25e993b5bb
58
Makefile
58
Makefile
@ -311,3 +311,61 @@ wrappers: | build deps librln libwaku.so
|
||||
go build -ldflags "-linkmode external -extldflags '$(EXTRA_LIBS_DYNAMIC)'" -o build/go_wrapper_example wrappers/wrapper_example.go #wrappers/cfuncs.go
|
||||
|
||||
endif # "variables.mk" was not included
|
||||
|
||||
##############################################
|
||||
# Static Binaries for Multiple Architectures #
|
||||
##############################################
|
||||
|
||||
MAKE_PID := $(shell echo $$PPID)
|
||||
JOB_FLAG := $(filter -j%, $(subst --jobs ,-j,$(subst --jobs=,-j,$(subst -j ,-j,$(shell ps T | grep "^\s*$(MAKE_PID).*$(MAKE)")))))
|
||||
JOBS := $(subst -j,,$(JOB_FLAG))
|
||||
ifneq ($(JOBS), )
|
||||
JOBS := -j $(JOBS)
|
||||
endif
|
||||
|
||||
ARCH :=amd64
|
||||
NWAKU_BASE_TAG := latest_
|
||||
#nwaku-base-20230502082624_arm64
|
||||
|
||||
SHELL := /bin/bash
|
||||
|
||||
static-arm64: ARCH :=arm64
|
||||
static-arm64:
|
||||
set -x &&\
|
||||
mkdir -p $${PWD}/vendor-$(ARCH) $${PWD}/build/$(ARCH) &&\
|
||||
docker run -it --rm\
|
||||
-v $${PWD}:/home/user/nwaku:z\
|
||||
-v $${PWD}/vendor-arm64:/home/user/nwaku/vendor:z\
|
||||
-v $${PWD}/build/arm64:/home/user/nwaku/build:z\
|
||||
--workdir /home/user/nwaku\
|
||||
--user $$(id -u):$$(id -g)\
|
||||
nwaku:$(NWAKU_BASE_TAG)$(ARCH)\
|
||||
$(JOBS)\
|
||||
V=1\
|
||||
LOG_LEVEL="TRACE"\
|
||||
QUICK_AND_DIRTY_COMPILER=1\
|
||||
NIMFLAGS="--cpu:arm64 --os:linux --gcc.exe:aarch64-alpine-linux-musl-gcc --gcc.linkerexe:aarch64-alpine-linux-musl-gcc --passL:-static"\
|
||||
wakunode2
|
||||
|
||||
static-amd64: ARCH :=amd64
|
||||
static-amd64:
|
||||
set -x &&\
|
||||
mkdir -p $${PWD}/vendor-$(ARCH) $${PWD}/build/$(ARCH) &&\
|
||||
docker run -it --rm\
|
||||
-v $${PWD}:/home/user/nwaku:z\
|
||||
-v $${PWD}/vendor-amd64:/home/user/nwaku/vendor:z\
|
||||
-v $${PWD}/build/amd64:/home/user/nwaku/build:z\
|
||||
--workdir /home/user/nwaku\
|
||||
--user $$(id -u):$$(id -g)\
|
||||
nwaku:$(NWAKU_BASE_TAG)$(ARCH)\
|
||||
$(JOBS)\
|
||||
V=1\
|
||||
LOG_LEVEL="TRACE"\
|
||||
QUICK_AND_DIRTY_COMPILER=1\
|
||||
NIMFLAGS="--cpu:amd64 --os:linux --gcc.exe:x86_64-alpine-linux-musl-gcc --gcc.linkerexe:x86_64-alpine-linux-musl-gcc --passL:-static"\
|
||||
wakunode2
|
||||
|
||||
static-all: static-arm64 static-amd64
|
||||
|
||||
static-clean:
|
||||
rm -rf build/arm64 build/amd64 vendor-arm64 vendor-amd64
|
||||
15
docker/base/Dockerfile.amd64
Normal file
15
docker/base/Dockerfile.amd64
Normal file
@ -0,0 +1,15 @@
|
||||
FROM --platform=amd64 alpine:edge
|
||||
|
||||
ARG USER_ID
|
||||
ARG GROUP_ID
|
||||
|
||||
RUN addgroup -g ${GROUP_ID} user; \
|
||||
adduser --disabled-password --gecos '' -u ${USER_ID} -G user user;
|
||||
|
||||
WORKDIR /home/user/nwaku
|
||||
ENTRYPOINT [ "entrypoint.sh" ]
|
||||
|
||||
# Get build tools and required header files
|
||||
RUN apk add --no-cache bash git cargo build-base pcre-dev linux-headers
|
||||
|
||||
ADD entrypoint.sh /bin/entrypoint.sh
|
||||
19
docker/base/Dockerfile.arm64
Normal file
19
docker/base/Dockerfile.arm64
Normal file
@ -0,0 +1,19 @@
|
||||
FROM --platform=arm64 alpine:edge
|
||||
|
||||
ARG USER_ID
|
||||
ARG GROUP_ID
|
||||
|
||||
RUN addgroup -g ${GROUP_ID} user; \
|
||||
adduser --disabled-password --gecos '' -u ${USER_ID} -G user user;
|
||||
|
||||
WORKDIR /home/user/nwaku
|
||||
ENTRYPOINT [ "entrypoint.sh" ]
|
||||
|
||||
# Get build tools and required header files
|
||||
RUN apk add --no-cache bash git cargo build-base pcre-dev linux-headers
|
||||
|
||||
ADD entrypoint.sh /bin/entrypoint.sh
|
||||
|
||||
#RUN git clone https://github.com/waku-org/nwaku.git --depth 1 &&\
|
||||
# cd nwaku &&\
|
||||
# make deps
|
||||
11
docker/base/entrypoint.sh
Executable file
11
docker/base/entrypoint.sh
Executable file
@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo $@
|
||||
|
||||
die() {
|
||||
exit 143; # 128 + 15 -- SIGTERM
|
||||
}
|
||||
|
||||
trap 'die' SIGINT
|
||||
|
||||
make "$@"
|
||||
0
docker/builder/Dockerfile.arm64
Normal file
0
docker/builder/Dockerfile.arm64
Normal file
Loading…
x
Reference in New Issue
Block a user