From ade29cf63a7c4426f0fa52f12c0ab8e0f0103cb1 Mon Sep 17 00:00:00 2001
From: Alex Auvolat <alex@adnab.me>
Date: Tue, 30 Jun 2020 17:18:42 +0200
Subject: [PATCH] Build Docker image

---
 .dockerignore |  2 ++
 Dockerfile    | 10 ++++++++++
 Makefile      | 17 +++++++++++++++++
 3 files changed, 29 insertions(+)
 create mode 100644 .dockerignore
 create mode 100644 Dockerfile

diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..5d03bcb
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,2 @@
+target/*
+!target/release/garage.stripped
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..d1ece08
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,10 @@
+FROM archlinux:latest
+
+RUN mkdir -p /garage/meta
+RUN mkdir -p /garage/data
+ENV RUST_BACKTRACE=1
+ENV RUST_LOG=garage=debug
+
+COPY target/release/garage.stripped /garage/garage
+
+CMD /garage/garage server -c /garage/config.toml
diff --git a/Makefile b/Makefile
index 0b5682f..5852963 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,20 @@
+BIN=target/release/garage
+DOCKER=lxpz/garage_amd64
+
 all:
 	#cargo fmt || true
 	RUSTFLAGS="-C link-arg=-fuse-ld=lld" cargo build
+
+$(BIN):
+	RUSTFLAGS="-C link-arg=-fuse-ld=lld" cargo build --release
+
+$(BIN).stripped: $(BIN)
+	cp $^ $@
+	strip $@
+
+docker: $(BIN).stripped
+	docker build -t $(DOCKER):$(TAG) .
+	docker push $(DOCKER):$(TAG)
+	docker tag $(DOCKER):$(TAG) $(DOCKER):latest
+	docker push $(DOCKER):latest
+