diff options
author | Adam Carpenter <gitlab@53hor.net> | 2019-07-09 15:14:04 -0400 |
---|---|---|
committer | Adam Carpenter <gitlab@53hor.net> | 2019-07-09 15:14:04 -0400 |
commit | 7e8ee5ed9cad6484e9f13f81731b102ced58402e (patch) | |
tree | 5395402ab07bbb5a659dbd68c701e22a1227202f /meap/meap-code/ch10/ch10-basic-handler/Dockerfile | |
download | learning-rust-7e8ee5ed9cad6484e9f13f81731b102ced58402e.tar.xz learning-rust-7e8ee5ed9cad6484e9f13f81731b102ced58402e.zip |
Init.
Diffstat (limited to 'meap/meap-code/ch10/ch10-basic-handler/Dockerfile')
-rwxr-xr-x | meap/meap-code/ch10/ch10-basic-handler/Dockerfile | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/meap/meap-code/ch10/ch10-basic-handler/Dockerfile b/meap/meap-code/ch10/ch10-basic-handler/Dockerfile new file mode 100755 index 0000000..cc17065 --- /dev/null +++ b/meap/meap-code/ch10/ch10-basic-handler/Dockerfile @@ -0,0 +1,36 @@ +# strategy sourced from:
+
+# https://www.fpcomplete.com/blog/2018/07/deploying-rust-with-docker-and-kubernetes
+# http://whitfin.io/speeding-up-rust-docker-builds/
+
+# This image will build all dependencies before you
+# introducing the project's source code, which means
+# they'll be cached most of the time.
+
+FROM rust:latest as intermediate
+RUN rustup target add x86_64-unknown-linux-musl
+
+ENV PATH $PATH:/root/.cargo/bin
+ENV PKG_CONFIG_ALLOW_CROSS=1
+
+# fetch dependencies using a minimal project,
+# enabling the docker image to be cached with dependencies installed
+RUN USER=root cargo new --bin project
+WORKDIR /project
+
+COPY ./Cargo.lock ./Cargo.lock
+COPY ./Cargo.toml ./Cargo.toml
+
+#RUN cargo -v build --target x86_64-unknown-linux-musl
+
+# build actual project
+#RUN rm src/*.rs
+COPY ./src ./src
+RUN cargo -v check
+RUN cargo -v build --target x86_64-unknown-linux-musl
+RUN ls -R /project/target
+
+FROM alpine
+COPY --from=intermediate /project/target/x86_64-unknown-linux-musl/debug/basic-handler /
+
+CMD /basic-handler
|