diff --git a/app/data/container-build/cerc-builder-gerbil/Dockerfile b/app/data/container-build/cerc-builder-gerbil/Dockerfile new file mode 100644 index 00000000..3daf6003 --- /dev/null +++ b/app/data/container-build/cerc-builder-gerbil/Dockerfile @@ -0,0 +1,20 @@ +# From: https://github.com/vyzo/gerbil/blob/master/docker/Dockerfile +FROM gerbil/ubuntu + +# Install the Solidity compiler (latest stable version) +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive && export DEBCONF_NOWARNINGS="yes" && \ + apt-get install -y software-properties-common && \ + add-apt-repository ppa:ethereum/ethereum && \ + apt-get update && apt-get install -y solc && \ + apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* + +RUN mkdir /scripts +COPY install-dependencies.sh /scripts + +RUN bash /scripts/install-dependencies.sh + +# Needed to prevent git from raging about /src +RUN git config --global --add safe.directory /src + +COPY entrypoint.sh /scripts +ENTRYPOINT ["/scripts/entrypoint.sh"] diff --git a/app/data/container-build/cerc-builder-gerbil/README.md b/app/data/container-build/cerc-builder-gerbil/README.md new file mode 100644 index 00000000..854139b9 --- /dev/null +++ b/app/data/container-build/cerc-builder-gerbil/README.md @@ -0,0 +1,21 @@ +## Gerbil Scheme Builder + +This container is designed to be used as a simple "build runner" environment for building and running Scheme projects using Gerbil and gerbil-ethereum. Its primary purpose is to allow build/test/run of gerbil code without the need to install and configure all the necessary prerequisites and dependencies on the host system. + +### Usage + +First build the container with: + +``` +$ laconic-so build-containers --include cerc/builder-gerbil +``` + +Now, assuming a gerbil project located at `~/projects/my-project`, run bash in the container mounting the project with: + +``` +$ docker run -it -v $HOME/projects/my-project:/src cerc/builder-gerbil:latest bash +root@7c4124bb09e3:/src# +``` + +Now gerbil commands can be run. + diff --git a/app/data/container-build/cerc-builder-gerbil/entrypoint.sh b/app/data/container-build/cerc-builder-gerbil/entrypoint.sh new file mode 100755 index 00000000..311cb8cb --- /dev/null +++ b/app/data/container-build/cerc-builder-gerbil/entrypoint.sh @@ -0,0 +1,2 @@ +#!/bin/sh +exec "$@" diff --git a/app/data/container-build/cerc-builder-gerbil/install-dependencies.sh b/app/data/container-build/cerc-builder-gerbil/install-dependencies.sh new file mode 100755 index 00000000..c6725ef8 --- /dev/null +++ b/app/data/container-build/cerc-builder-gerbil/install-dependencies.sh @@ -0,0 +1,15 @@ +DEPS=(github.com/fare/gerbil-utils + github.com/fare/gerbil-poo + github.com/fare/gerbil-crypto + github.com/fare/gerbil-persist + github.com/fare/gerbil-ethereum + github.com/drewc/gerbil-swank + github.com/drewc/drewc-r7rs-swank + github.com/drewc/smug-gerbil + github.com/drewc/ftw + github.com/vyzo/gerbil-libp2p + ) ; +for i in ${DEPS[@]} ; do + gxpkg install $i && + gxpkg build $i +done diff --git a/app/data/container-image-list.txt b/app/data/container-image-list.txt index 48d5bc04..7e5a0191 100644 --- a/app/data/container-image-list.txt +++ b/app/data/container-image-list.txt @@ -22,3 +22,4 @@ cerc/eth-probe cerc/builder-js cerc/keycloak cerc/tx-spammer +cerc/builder-gerbil