@@ -22,21 +22,21 @@ RUN echo "deb http://repo.sawtooth.me/ubuntu/nightly bionic universe" >> /etc/ap
22
22
&& (apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 44FC67F19B2466EA \
23
23
|| apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 44FC67F19B2466EA) \
24
24
&& 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/*
40
40
41
41
ENV PATH=$PATH:/protoc3/bin:/root/.cargo/bin
42
42
@@ -53,25 +53,34 @@ RUN curl -OLsS https://github.com/google/protobuf/releases/download/v3.7.1/proto
53
53
&& unzip -o protoc-3.7.1-linux-x86_64.zip -d /usr/local \
54
54
&& rm protoc-3.7.1-linux-x86_64.zip
55
55
56
- COPY ./sdk /sdk
56
+ RUN mkdir /build
57
57
58
+ # Copy grid sdk dependency
59
+ COPY sdk/ /build/sdk/
60
+
61
+ # Create empty cargo project
62
+ WORKDIR /build
58
63
RUN mkdir contracts \
59
64
&& USER=root cargo new --bin contracts/track_and_trace
60
- WORKDIR /contracts/track_and_trace
61
65
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
65
68
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
68
72
73
+ # Remove the auto-generated .rs files and the built files
69
74
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
71
79
72
- RUN rm ./target/release/grid-track-and-trace-tp* ./target/release/deps/grid_track_and_trace*
80
+ # Build the contract
73
81
RUN cargo build --target wasm32-unknown-unknown --release
74
82
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
76
85
77
86
ENTRYPOINT []
0 commit comments