This commit is contained in:
Philippe Loctaux 2023-02-27 16:48:42 +01:00
parent a85c1431c8
commit 44793eb8d4
3 changed files with 59 additions and 0 deletions

13
.dockerignore Normal file
View file

@ -0,0 +1,13 @@
# Docker
Dockerfile
.dockerignore
# ide and os
.idea/
.DS_Store
# database
/database/
# rust
target/

30
Dockerfile Normal file
View file

@ -0,0 +1,30 @@
LABEL maintainer="Philippe Loctaux <p@philippeloctaux.com>"
FROM clux/muslrust:1.67.0-stable as chef
USER root
RUN cargo install cargo-chef
WORKDIR /ezidam
FROM chef AS planner
COPY Cargo.toml .
COPY Cargo.lock .
COPY crates crates
RUN cargo chef prepare --recipe-path recipe.json
FROM chef AS builder
COPY --from=planner /ezidam/recipe.json recipe.json
RUN cargo chef cook --release --target x86_64-unknown-linux-musl --recipe-path recipe.json
COPY --from=planner /ezidam/Cargo.toml .
COPY --from=planner /ezidam/Cargo.lock .
COPY --from=planner /ezidam/crates crates
COPY logo logo
RUN cargo build --release --target x86_64-unknown-linux-musl --package ezidam --bin ezidam
FROM scratch
COPY --from=builder /ezidam/target/x86_64-unknown-linux-musl/release/ezidam /ezidam
ENV ROCKET_CLI_COLORS=0
ENV ROCKET_ADDRESS=0.0.0.0
ENV ROCKET_PORT=8000
ENV ROCKET_DATABASES='{ezidam={url="/database/ezidam.sqlite"}}'
EXPOSE 8000
ENTRYPOINT ["/ezidam"]

16
justfile Executable file
View file

@ -0,0 +1,16 @@
#!/usr/bin/env just --justfile
database_path := "/tmp/ezidam/docker"
# list recipes
default:
just --list
docker_build:
docker build --progress=plain --platform linux/amd64 -t ezidam .
docker_run:
mkdir -p {{database_path}}
docker run --rm -p 8000:8000 -v {{database_path}}:/database --platform linux/amd64 ezidam
docker_all: docker_build docker_run