From fcfe7e63701c03c69ec28835bd24699b270502b1 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Wed, 25 Nov 2020 16:30:31 +0100 Subject: [PATCH] docker-based build instructions --- .gitignore | 1 + README | 24 +++++++++++++++++++++++- contrib/wallet-docker/Dockerfile | 9 +++++++++ contrib/wallet-docker/gitbuild.sh | 18 ++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 contrib/wallet-docker/Dockerfile create mode 100644 contrib/wallet-docker/gitbuild.sh diff --git a/.gitignore b/.gitignore index 8fb67e2a4..6d1a129f9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ dist/ lib/ node_modules/ tsconfig.tsbuildinfo +.pnpm-store/ # GNU-style build system /configure diff --git a/README b/README index 3249f4b02..d248d9c87 100644 --- a/README +++ b/README @@ -6,7 +6,14 @@ in TypeScript. ## Dependencies -In order to build the GNU Taler wallet, make sure that you have Node.JS and pnpm installed. +The following dependencies are required to build the wallet: + +* python>=3.8 +* nodejs>=12 +* jq +* npm +* pnpm +* zip ## Installation @@ -31,6 +38,21 @@ This will create the zip file with the WebExtension in the location packages/taler-wallet-webextension/taler-wallet-webextension-$VERSION.zip ``` +We also provide a `Dockerfile` for a container that can build the WebExtension: + +```shell +# Build the image +(host)$ docker build --tag walletbuilder contrib/wallet-docker + +# Run container with wallet source mounted +(host)$ docker run -it -v $PWD:wallet-core walletbuilder + +# Run build inside container +(container)$ cd wallet-core +(container)$ ./configure && make webextension +``` + + ### Compiling from Git If you are compiling the code from git, you have to run `./bootstrap` before diff --git a/contrib/wallet-docker/Dockerfile b/contrib/wallet-docker/Dockerfile new file mode 100644 index 000000000..d1a04d32c --- /dev/null +++ b/contrib/wallet-docker/Dockerfile @@ -0,0 +1,9 @@ +FROM debian:bullseye AS walletbuild + +# Install dependencies +RUN apt-get update +RUN apt-get -y upgrade +RUN apt-get -y install build-essential zip jq python3 python3-pip nodejs npm +RUN npm install -g pnpm + +COPY gitbuild.sh /bin diff --git a/contrib/wallet-docker/gitbuild.sh b/contrib/wallet-docker/gitbuild.sh new file mode 100644 index 000000000..9e84c82dd --- /dev/null +++ b/contrib/wallet-docker/gitbuild.sh @@ -0,0 +1,18 @@ +#!/bin/sh + +set -eu + +# Fetch source +git clone https://git.taler.net/wallet-core.git + +cd wallet-core + +# Only for git repositories +./bootstrap + +# Run build +./configure +make webextension + +# Copy WebExtension to root folder +cp wallet-core/packages/taler-wallet-webextension/taler-wallet*.zip /