diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ab33b0c360e83d7b8c3400e7a6804b2db1b755c..32fa50d0ec78d10094edd17ad3b53f7f4be2e7d7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -164,7 +164,7 @@ releases:x64: - docker info script: - docker pull $CI_REGISTRY_IMAGE:$IMAGE_TAG || true - - docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" -f release/docker/Dockerfile . + - docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" --build-arg="INSTALL_DEX=$INSTALL_DEX" -f release/docker/Dockerfile . #- docker login -u "gitlab-ci-token" -p "$CI_BUILD_TOKEN" $CI_REGISTRY #- docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" # Temporary push on dockerhub @@ -183,6 +183,7 @@ package:test:docker-test-image: - when: manual variables: IMAGE_TAG: "test-image" + INSTALL_DEX: "yes" package:dev:docker: extends: .docker-build-app-image @@ -192,6 +193,7 @@ package:dev:docker: - if: $CI_COMMIT_BRANCH == "dev" variables: IMAGE_TAG: "dev" + INSTALL_DEX: "yes" package:prod:docker: stage: package diff --git a/release/Makefile b/release/Makefile index 4a2cec18204b78e6f54dc0fe3622eca9faa5955b..6efcb75d8a35af1a74fff5d121edea23c34a7299 100644 --- a/release/Makefile +++ b/release/Makefile @@ -37,6 +37,7 @@ ARCH = $(shell uname -m | sed -e "s/86_//") PLATFORM = $(shell uname -s | tr A-Z a-z) ADD_DEBUG = Y DEST = +INSTALL_DEX = no # Keep all intermediate targets .SECONDARY: @@ -84,9 +85,11 @@ base-gui: $(call nodedep,duniter-ui) base # Build the base .PHONY: base +base: install_dex=$(filter yes,$(INSTALL_DEX)) base: | node_modules - @cargo build --release -p duniter-cli + @cargo build --release -p duniter-cli $(if $(install_dex),-p duniter-dbex,) @mv target/release/duniter bin/duniter + @$(if $(install_dex),mv target/release/dex bin/dex,:) index.html: $(call nodedep,duniter-ui) $(addprefix node_modules/,$(leveldown.COMPILED) $(sqlite3.COMPILED)) @sed -i "s/\"main\": \"index.js\",/\"main\": \"index.html\",/" package.json diff --git a/release/docker/Dockerfile b/release/docker/Dockerfile index a4689d4acc1eab50e550dd69f48d4b7679ce0feb..edac20d7cc7f331fc4bd353c01fa41d48946fc06 100644 --- a/release/docker/Dockerfile +++ b/release/docker/Dockerfile @@ -9,6 +9,7 @@ LABEL version="0.1.0" LABEL description="Duniter server (Crypto-currency software to manage libre currency such as Äž1)" ARG DUNITER_UI_VER="1.7.x" +ARG INSTALL_DEX="no" RUN apk update && \ apk add ca-certificates curl && \ @@ -25,8 +26,8 @@ RUN curl https://sh.rustup.rs -sSf | sh -s -- -y # build duniter RUN PATH=${HOME}/.cargo/bin:${PATH} \ - RUSTFLAGS="-C target-feature=-crt-static" \ - make -C release ADD_DEBUG=N server-gui clean \ + RUSTFLAGS="-C target-feature=-crt-static -L/usr/lib" \ + make -C release ADD_DEBUG=N INSTALL_DEX=${INSTALL_DEX} server-gui clean \ && rm -rf work/extra # ------------------------------------------------------------------------------ @@ -35,6 +36,8 @@ RUN PATH=${HOME}/.cargo/bin:${PATH} \ FROM node:10-alpine +ARG INSTALL_DEX="no" + # install jq RUN apk add jq @@ -46,8 +49,10 @@ RUN mkdir -p /var/lib/duniter /etc/duniter && chown duniter:duniter /var/lib/dun # copy the build artifact from the build stage COPY --from=build --chown=duniter:duniter /duniter/work /duniter -# copy duniter wrapper +# copy wrappers COPY release/docker/duniter.sh /usr/bin/duniter +COPY release/docker/dex.sh /usr/bin/dex +RUN [ "$INSTALL_DEX" = yes ] || rm /usr/bin/dex # copy entrypoint COPY release/docker/docker-entrypoint.sh / diff --git a/release/docker/dex.sh b/release/docker/dex.sh new file mode 100755 index 0000000000000000000000000000000000000000..48edbd2045a137d813e87d8d46bc9d791240e1ec --- /dev/null +++ b/release/docker/dex.sh @@ -0,0 +1,5 @@ +#!/bin/sh +if [ "$1" != --home ]; then + set -- --home /var/lib/duniter "$@" +fi +exec /duniter/bin/dex "$@"