Skip to content

Commit

Permalink
add production dockerfile, update CI
Browse files Browse the repository at this point in the history
  • Loading branch information
Schaeff committed Oct 25, 2018
1 parent 02919d5 commit 7fe30be
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 29 deletions.
40 changes: 20 additions & 20 deletions Dockerfile
@@ -1,4 +1,4 @@
FROM ubuntu:14.04
FROM ubuntu:18.04

MAINTAINER JacobEberhardt <jacob.eberhardt@tu-berlin.de>, Dennis Kuhnert <mail@kyroy.com>

Expand All @@ -9,35 +9,35 @@ ARG LIBSNARK_COMMIT=f7c87b88744ecfd008126d415494d9b34c4c1b20
ENV LIBSNARK_SOURCE_PATH=/home/zokrates/libsnark-$LIBSNARK_COMMIT
ENV WITH_LIBSNARK=1

RUN apt-get update && apt-get install -y \
RUN apt-get update && apt-get install -y --no-install-recommends \
ca-certificates \
build-essential \
cmake \
curl \
libboost-all-dev \
libboost-dev \
libboost-program-options-dev \
libgmp3-dev \
libprocps3-dev \
libprocps-dev \
libssl-dev \
pkg-config \
python-markdown \
git
git \
&& rm -rf /var/lib/apt/lists/* \
&& git clone https://github.com/scipr-lab/libsnark.git $LIBSNARK_SOURCE_PATH \
&& git -C $LIBSNARK_SOURCE_PATH checkout $LIBSNARK_COMMIT \
&& git -C $LIBSNARK_SOURCE_PATH submodule update --init --recursive \
&& chown -R zokrates:zokrates $LIBSNARK_SOURCE_PATH

USER zokrates

RUN curl https://sh.rustup.rs -sSf | \
sh -s -- --default-toolchain $RUST_TOOLCHAIN -y

ENV PATH=/home/zokrates/.cargo/bin:$PATH

RUN git clone https://github.com/scipr-lab/libsnark.git $LIBSNARK_SOURCE_PATH

WORKDIR $LIBSNARK_SOURCE_PATH

RUN git checkout $LIBSNARK_COMMIT
RUN git submodule update --init --recursive

WORKDIR /home/zokrates

COPY --chown=zokrates:zokrates . ZoKrates
COPY --chown=zokrates:zokrates . src

RUN cd ZoKrates \
&& ./build.sh
RUN curl https://sh.rustup.rs -sSf | sh -s -- --default-toolchain $RUST_TOOLCHAIN -y \
&& export PATH=/home/zokrates/.cargo/bin:$PATH \
&& (cd src;./build_release.sh) \
&& mv ./src/target/release/zokrates . \
&& mv ./src/zokrates_cli/examples . \
&& rustup self uninstall -y \
&& rm -rf $LIBSNARK_SOURCE_PATH src
21 changes: 12 additions & 9 deletions Jenkinsfile
Expand Up @@ -3,7 +3,8 @@
def majorVersion
def minorVersion
def patchVersion
def dockerImage
def testImage
def prodImage

pipeline {
agent any
Expand Down Expand Up @@ -34,8 +35,9 @@ pipeline {
steps {
script {
ansiColor('xterm') {
dockerImage = docker.build("zokrates/zokrates")
dockerImage.inside {
def testDockerfile = 'dev.Dockerfile'
testImage = docker.build("zokrates/zokrates", "-f ${testDockerfile} .")
testImage.inside {
sh 'RUSTFLAGS="-D warnings" ./build.sh'
}
}
Expand All @@ -47,7 +49,7 @@ pipeline {
steps {
script {
ansiColor('xterm') {
dockerImage.inside {
testImage.inside {
sh 'RUSTFLAGS="-D warnings" ./test.sh'
}
}
Expand All @@ -62,7 +64,7 @@ pipeline {
steps {
script {
ansiColor('xterm') {
dockerImage.inside {
testImage.inside {
sh 'RUSTFLAGS="-D warnings" ./full_test.sh'
}
}
Expand All @@ -77,13 +79,14 @@ pipeline {
steps {
script {
ansiColor('xterm') {
prodImage = docker.build("zokrates/zokrates"
docker.withRegistry('https://registry.hub.docker.com', 'dockerhub-kyroy') {
dockerImage.push(patchVersion)
dockerImage.push(minorVersion)
prodImage.push(patchVersion)
prodImage.push(minorVersion)
if (majorVersion > '0') {
dockerImage.push(majorVersion)
prodImage.push(majorVersion)
}
dockerImage.push("latest")
prodImage.push("latest")
}
}
}
Expand Down
10 changes: 10 additions & 0 deletions build_release.sh
@@ -0,0 +1,10 @@
#!/bin/bash

# Exit if any subcommand fails
set -e

if [ -n "$WITH_LIBSNARK" ]; then
cargo build --release
else
cargo -Z package-features build --release --no-default-features
fi
43 changes: 43 additions & 0 deletions dev.Dockerfile
@@ -0,0 +1,43 @@
FROM ubuntu:14.04

MAINTAINER JacobEberhardt <jacob.eberhardt@tu-berlin.de>, Dennis Kuhnert <mail@kyroy.com>

RUN useradd -u 1000 -m zokrates

ARG RUST_TOOLCHAIN=nightly-2018-06-04
ARG LIBSNARK_COMMIT=f7c87b88744ecfd008126d415494d9b34c4c1b20
ENV LIBSNARK_SOURCE_PATH=/home/zokrates/libsnark-$LIBSNARK_COMMIT
ENV WITH_LIBSNARK=1

RUN apt-get update && apt-get install -y \
build-essential \
cmake \
curl \
libboost-all-dev \
libgmp3-dev \
libprocps3-dev \
libssl-dev \
pkg-config \
python-markdown \
git

USER zokrates

RUN curl https://sh.rustup.rs -sSf | \
sh -s -- --default-toolchain $RUST_TOOLCHAIN -y

ENV PATH=/home/zokrates/.cargo/bin:$PATH

RUN git clone https://github.com/scipr-lab/libsnark.git $LIBSNARK_SOURCE_PATH

WORKDIR $LIBSNARK_SOURCE_PATH

RUN git checkout $LIBSNARK_COMMIT
RUN git submodule update --init --recursive

WORKDIR /home/zokrates

COPY --chown=zokrates:zokrates . ZoKrates

RUN cd ZoKrates \
&& ./build.sh

0 comments on commit 7fe30be

Please sign in to comment.