diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000000000000000000000000000000000000..98c538d8fa8ff89112b12ed0a63beed8baf81185
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,3 @@
+.idea/
+/target
+/data
\ No newline at end of file
diff --git a/deploy/Dockerfile b/deploy/Dockerfile
new file mode 100644
index 0000000000000000000000000000000000000000..4013041f6ddf9511bf5888930d95b132bee1abd8
--- /dev/null
+++ b/deploy/Dockerfile
@@ -0,0 +1,19 @@
+FROM lukemathwalker/cargo-chef:latest-rust-1.57.0 AS chef
+WORKDIR app
+
+FROM chef AS planner
+COPY . .
+RUN cargo chef prepare --recipe-path recipe.json
+
+FROM chef AS builder
+COPY --from=planner /app/recipe.json recipe.json
+# Build dependencies - this is the caching Docker layer!
+RUN cargo chef cook --release --recipe-path recipe.json
+# Build application
+COPY . .
+RUN cargo build --release --bin tuser
+
+FROM debian:buster-20211201-slim AS runtime
+WORKDIR app
+COPY --from=builder /app/target/release/tuser /usr/local/bin/
+ENTRYPOINT ["/usr/local/bin/tuser"]