diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..2db3e70b71a2f82fefd81f857997aec5c8fe20fe --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM node +MAINTAINER Caner Candan <caner@candan.fr> + +ENV PGP_KEY_TYPE default +ENV PGP_KEY_LENGTH default +ENV PGP_SUBKEY_TYPE default +ENV PGP_SUBKEY_LENGTH default +ENV PGP_REAL_NAME docker_node +ENV PGP_COMMENT it's a docker test node +ENV PGP_EMAIL docker@docker +ENV PGP_EXPIRE_DATE 0 +ENV PGP_PASSPHRASE abc + +ENV CURRENCY_NAME test +ENV PORT_NUMBER 8033 +ENV REMOTE_HOST ucoin-test.xyz +ENV REMOTE_IPV4 0.0.0.0 +ENV REMOTE_PORT 8033 +ENV AMENDMENTS_DAEMON ON +ENV AMENDMENTS_START 1406283438 +ENV AMENDMENTS_FREQUENCY 86400 +ENV UNIVERSAL_DIVIDEND_FREQUENCY 86400 +ENV AMENDMENTS_CONSENSUS 0.67 +ENV FIRST_UNIVERSAL_DIVIDEND_VALUE 100 +ENV MONETARY_MASS_GROWTH_PERCENT 0.0074 +ENV COMMUNITY_CHANGES_ALGORITHM AnyKey + +ENV MONGO_DB_NAME ucoin_default + +COPY share/docker/run.sh /usr/src/app/ +COPY share/docker/setup.sh /usr/src/app/ + +ADD . /usr/src/app +WORKDIR /usr/src/app + +RUN npm install . -g + +EXPOSE 8033 + +CMD [ "sh", "run.sh" ] diff --git a/share/docker/run.sh b/share/docker/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..db17ecfd943c62af2e4c99d5e0c25551602b215f --- /dev/null +++ b/share/docker/run.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +echo "Setup first" +sh setup.sh + +echo "Then run..." +ucoind start \ + --mhost $MONGO_PORT_27017_TCP_ADDR \ + --mport $MONGO_PORT_27017_TCP_PORT \ + --mdb $MONGO_DB_NAME diff --git a/share/docker/setup.sh b/share/docker/setup.sh new file mode 100755 index 0000000000000000000000000000000000000000..fd8a2e3fb296376e26b0e1e3ee99ff6b3c81e16d --- /dev/null +++ b/share/docker/setup.sh @@ -0,0 +1,52 @@ +#!/bin/sh + +echo "(1) Create new pgp secret key thanks to the environment variables provided to docker run cmd" + +cat >key <<EOF +%echo Generating a basic OpenPGP key +Key-Type: $PGP_KEY_TYPE +Key-Length: $PGP_KEY_LENGTH +Subkey-Type: $PGP_SUBKEY_TYPE +Subkey-Length: $PGP_SUBKEY_LENGTH +Name-Real: $PGP_REAL_NAME +Name-Comment: $PGP_COMMENT +Name-Email: $PGP_EMAIL +Expire-Date: $PGP_EXPIRE_DATE +Passphrase: $PGP_PASSPHRASE +%pubring key.pub +%secring key.sec +%commit +%echo done +EOF + +gpg2 --batch --gen-key key + +gpg2 --no-default-keyring --secret-keyring ./key.sec \ + --keyring ./key.pub --list-secret-keys + +gpg2 --no-default-keyring --secret-keyring ./key.sec \ + --keyring ./key.pub --export-secret-keys -a > ./key.sec.asc + +echo "(2) Configure ucoind thanks to the new created pgp secret key and the provided environment variables" + +ucoind config \ + --mhost $MONGO_PORT_27017_TCP_ADDR \ + --mport $MONGO_PORT_27017_TCP_PORT \ + --mdb $MONGO_DB_NAME \ + --currency $CURRENCY_NAME \ + --port $PORT_NUMBER \ + --ipv4 `hostname -i` \ + --remote4 $REMOTE_IPV4 \ + --remoteh $REMOTE_HOST \ + --remotep $REMOTE_PORT \ + --amdaemon $AMENDMENTS_DAEMON \ + --amstart $AMENDMENTS_START \ + --amfreq $AMENDMENTS_FREQUENCY \ + --udfreq $UNIVERSAL_DIVIDEND_FREQUENCY \ + --consensus $AMENDMENTS_CONSENSUS \ + --ud0 $FIRST_UNIVERSAL_DIVIDEND_VALUE \ + --udpercent $MONETARY_MASS_GROWTH_PERCENT \ + --algorithm $COMMUNITY_CHANGES_ALGORITHM \ + --pgpkey ./key.sec.asc --pgppasswd $PGP_PASSPHRASE + +echo "Setup done"