summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile29
1 files changed, 29 insertions, 0 deletions
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..7ae6bd5
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,29 @@
+# build stage
+FROM rust:latest as cargo-build
+
+RUN apt-get update && apt-get install musl-tools -y
+RUN rustup target add x86_64-unknown-linux-musl
+
+WORKDIR /usr/src/app
+COPY . .
+
+RUN RUSTFLAGS=-Clinker=musl-gcc cargo build --release
+--target=x86_64-unknown-linux-musl
+
+###################
+# final stage
+FROM alpine:latest
+
+RUN addgroup -g 1000 app
+RUN adduser -D -s /bin/sh -u 1000 -G app app
+
+WORKDIR /home/app/bin/
+COPY --from=cargo-build
+/usr/src/app/target/x86_64-unknown-linux-musl/release/gico-api .
+
+RUN chown app:app gico-api
+USER app
+
+EXPOSE 9090
+
+CMD ["./gico-api"]