forked from mbround18/valheim-docker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile.odin
43 lines (38 loc) · 1.24 KB
/
Dockerfile.odin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# ------------------ #
# -- Odin Planner -- #
# ------------------ #
FROM lukemathwalker/cargo-chef as planner
WORKDIR /data/odin
COPY . .
RUN cargo chef prepare --recipe-path recipe.json
# ------------------ #
# -- Odin Cacher -- #
# ------------------ #
FROM lukemathwalker/cargo-chef as cacher
WORKDIR /data/odin
COPY --from=planner /data/odin/recipe.json recipe.json
RUN cargo chef cook --release --recipe-path recipe.json
# ---------------------------- #
# -- Odin Project Mangement -- #
# ---------------------------- #
FROM mbround18/cargo-make:latest as cargo-make
# ------------------ #
# -- Odin Builder -- #
# ------------------ #
FROM rust as builder
WORKDIR /data/odin
COPY . .
# Copy over the cached dependencies
COPY --from=cacher /data/odin/target target
COPY --from=cacher /usr/local/cargo /usr/local/cargo
COPY --from=cargo-make /usr/local/bin/cargo-make /usr/local/bin/cargo-make
RUN cargo-make make -p production release
# ------------------ #
# -- Odin Runtime -- #
# ------------------ #
FROM debian:buster-slim as runtime
WORKDIR /data/odin
COPY --from=builder /data/odin/target/release/odin /usr/local/bin
COPY --from=builder /data/odin/target/release/odin-http-server /usr/local/bin
ENTRYPOINT ["/usr/local/bin/odin"]
CMD ["--version"]