From 7dabcc4305c8f7d654dca35fc3e3db37a3b5a70f Mon Sep 17 00:00:00 2001 From: Gilles Filippini <pini@debian.org> Date: Thu, 20 May 2021 17:02:53 +0200 Subject: [PATCH] feat(docker): install dex for dev and test images --- .gitlab-ci.yml | 4 +++- release/Makefile | 5 ++++- release/docker/Dockerfile | 11 ++++++++--- release/docker/dex.sh | 5 +++++ 4 files changed, 20 insertions(+), 5 deletions(-) create mode 100755 release/docker/dex.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6ab33b0c3..32fa50d0e 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 4a2cec182..6efcb75d8 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 a4689d4ac..edac20d7c 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 000000000..48edbd204 --- /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 "$@" -- GitLab