diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..567609b12 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +build/ diff --git a/Makefile b/Makefile index ff4b7ff0a..1caf5f645 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ REPO := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) PREFIX ?= /usr/local -CC ?= cc +CC ?= cc CXX ?= c++ SETCAP ?= which setcap && setcap cap_net_admin=+eip @@ -68,7 +68,7 @@ debug-configure: $(CONFIG_CMD) -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) -DDNS_PORT=$(DNS_PORT) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' release-configure: clean - mkdir -p '$(BUILD_ROOT)' + mkdir -p '$(BUILD_ROOT)' $(CONFIG_CMD) -DSTATIC_LINK=ON -DCMAKE_BUILD_TYPE=Release -DRELEASE_MOTTO="$(shell cat motto.txt)" -DCMAKE_C_COMPILER=$(CC) -DCMAKE_CXX_COMPILER=$(CXX) -DCMAKE_ASM_FLAGS='$(ASFLAGS)' -DCMAKE_C_FLAGS='$(CFLAGS)' -DCMAKE_CXX_FLAGS='$(CXXFLAGS)' debug: debug-configure @@ -118,7 +118,7 @@ shared-configure: clean shared: shared-configure $(MAKE) -C $(BUILD_ROOT) -testnet: +testnet: cp $(EXE) $(TESTNET_EXE) mkdir -p $(TESTNET_ROOT) python3 contrib/testnet/genconf.py --bin=$(TESTNET_EXE) --svc=$(TESTNET_SERVERS) --clients=$(TESTNET_CLIENTS) --dir=$(TESTNET_ROOT) --out $(TESTNET_CONF) --connect=4 @@ -142,6 +142,12 @@ lint: $(LINT_CHECK) %.cpp-check: %.cpp clang-tidy $^ -- -I$(REPO)/include -I$(REPO)/crypto/libntrup/include -I$(REPO)/llarp +docker-debian: + docker build -f docker/debian.Dockerfile . + +docker-fedora: + docker build -f docker/fedora.Dockerfile . + install: rm -f $(PREFIX)/bin/lokinet cp $(EXE) $(PREFIX)/bin/lokinet diff --git a/docker/debian.Dockerfile b/docker/debian.Dockerfile new file mode 100644 index 000000000..375fe86ff --- /dev/null +++ b/docker/debian.Dockerfile @@ -0,0 +1,10 @@ +FROM debian:latest + +RUN apt update && \ + apt install -y build-essential cmake git libcap-dev wget rapidjson-dev + +WORKDIR /src/ + +COPY . /src/ + +RUN make -j 8 JSONRPC=ON diff --git a/docker/fedora.Dockerfile b/docker/fedora.Dockerfile new file mode 100644 index 000000000..5da7ec57b --- /dev/null +++ b/docker/fedora.Dockerfile @@ -0,0 +1,11 @@ +FROM fedora:latest + +RUN dnf update -y && \ + dnf upgrade -y && \ + dnf install -y cmake make git gcc gcc-c++ libcap-devel wget rapidjson-devel + +WORKDIR /src/ + +COPY . /src/ + +RUN make -j8 JSONRPC=ON