Skip to content
This repository was archived by the owner on Mar 23, 2023. It is now read-only.

Commit 79a9126

Browse files
committed
Refactor tnt contract Dockerfile
Signed-off-by: Ryan Beck-Buysse <[email protected]>
1 parent cb39dc1 commit 79a9126

File tree

1 file changed

+34
-25
lines changed

1 file changed

+34
-25
lines changed

contracts/track_and_trace/Dockerfile

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ RUN echo "deb http://repo.sawtooth.me/ubuntu/nightly bionic universe" >> /etc/ap
2222
&& (apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 44FC67F19B2466EA \
2323
|| apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 44FC67F19B2466EA) \
2424
&& apt-get update \
25-
&& apt-get install -y -q \
26-
build-essential \
27-
curl \
28-
gcc \
29-
g++ \
30-
libpq-dev \
31-
libssl-dev \
32-
libsasl2-dev \
33-
libzmq3-dev \
34-
openssl \
35-
pkg-config \
36-
sabre-cli \
37-
unzip \
38-
&& apt-get clean \
39-
&& rm -rf /var/lib/apt/lists/*
25+
&& apt-get install -y -q \
26+
build-essential \
27+
curl \
28+
gcc \
29+
g++ \
30+
libpq-dev \
31+
libssl-dev \
32+
libsasl2-dev \
33+
libzmq3-dev \
34+
openssl \
35+
pkg-config \
36+
sabre-cli \
37+
unzip \
38+
&& apt-get clean \
39+
&& rm -rf /var/lib/apt/lists/*
4040

4141
ENV PATH=$PATH:/protoc3/bin:/root/.cargo/bin
4242

@@ -53,25 +53,34 @@ RUN curl -OLsS https://github.com/google/protobuf/releases/download/v3.7.1/proto
5353
&& unzip -o protoc-3.7.1-linux-x86_64.zip -d /usr/local \
5454
&& rm protoc-3.7.1-linux-x86_64.zip
5555

56-
COPY ./sdk /sdk
56+
RUN mkdir /build
5757

58+
# Copy grid sdk dependency
59+
COPY sdk/ /build/sdk/
60+
61+
# Create empty cargo project
62+
WORKDIR /build
5863
RUN mkdir contracts \
5964
&& USER=root cargo new --bin contracts/track_and_trace
60-
WORKDIR /contracts/track_and_trace
6165

62-
# Build TP with dummy source in order to cache dependencies in Docker image.
63-
COPY ./contracts/track_and_trace/Cargo.toml ./Cargo.toml
64-
RUN cargo build --release
66+
# Copy over Cargo.toml file
67+
COPY contracts/track_and_trace/Cargo.toml /build/contracts/track_and_trace/Cargo.toml
6568

66-
COPY contracts/track_and_trace/Cargo.toml contracts/track_and_trace/Cargo.lock* ./
67-
RUN cargo build
69+
# Do a release build to cache dependencies
70+
WORKDIR /build/contracts/track_and_trace
71+
RUN cargo build --release
6872

73+
# Remove the auto-generated .rs files and the built files
6974
RUN rm src/*.rs
70-
COPY ./contracts/track_and_trace/src ./src
75+
RUN rm target/release/grid-track-and-trace-tp* target/release/deps/grid_track_and_trace*
76+
77+
# Copy over source files
78+
COPY contracts/track_and_trace/src /build/contracts/track_and_trace/src
7179

72-
RUN rm ./target/release/grid-track-and-trace-tp* ./target/release/deps/grid_track_and_trace*
80+
# Build the contract
7381
RUN cargo build --target wasm32-unknown-unknown --release
7482

75-
COPY ./contracts/track_and_trace/track_and_trace.yaml ./track_and_trace.yaml
83+
# Copy the contract definition
84+
COPY contracts/track_and_trace/track_and_trace.yaml /build/contracts/track_and_trace/track_and_trace.yaml
7685

7786
ENTRYPOINT []

0 commit comments

Comments
 (0)