From a9b200048ad1b3ada708b2e3e83595550f921583 Mon Sep 17 00:00:00 2001 From: C0ffeeCode Date: Sat, 4 May 2024 19:28:43 +0200 Subject: [PATCH] Add Containerfile --- Cargo.lock | 71 ++++++++++++++++++++++++++++----------------------- Cargo.toml | 2 +- Containerfile | 28 ++++++++++++++++++++ Justfile | 2 +- 4 files changed, 69 insertions(+), 34 deletions(-) create mode 100644 Containerfile diff --git a/Cargo.lock b/Cargo.lock index c7a93d3..8776b62 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -62,47 +62,48 @@ dependencies = [ [[package]] name = "anstream" -version = "0.6.13" +version = "0.6.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb" +checksum = "418c75fa768af9c03be99d17643f93f79bbba589895012a80e3452a19ddda15b" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", + "is_terminal_polyfill", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.6" +version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc" +checksum = "038dfcf04a5feb68e9c60b21c9625a54c2c0616e79b72b0fd87075a056ae1d1b" [[package]] name = "anstyle-parse" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c" +checksum = "c03a11a9034d92058ceb6ee011ce58af4a9bf61491aa7e1e59ecd24bd40d22d4" dependencies = [ "utf8parse", ] [[package]] name = "anstyle-query" -version = "1.0.2" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648" +checksum = "a64c907d4e79225ac72e2a354c9ce84d50ebb4586dee56c82b3ee73004f537f5" dependencies = [ "windows-sys 0.52.0", ] [[package]] name = "anstyle-wincon" -version = "3.0.2" +version = "3.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7" +checksum = "61a38449feb7068f52bb06c12759005cf459ee52bb4adc1d5a7c4322d716fb19" dependencies = [ "anstyle", "windows-sys 0.52.0", @@ -287,9 +288,9 @@ dependencies = [ [[package]] name = "colorchoice" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" +checksum = "0b6a852b24ab71dffc585bcb46eaf7959d175cb865a7152e35b348d1b2960422" [[package]] name = "const-oid" @@ -780,6 +781,12 @@ dependencies = [ "hashbrown", ] +[[package]] +name = "is_terminal_polyfill" +version = "1.70.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8478577c03552c21db0e2724ffb8986a5ce7af88107e6be5d2ee6e158c12800" + [[package]] name = "itertools" version = "0.12.1" @@ -1300,6 +1307,22 @@ version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47" +[[package]] +name = "rvault-server" +version = "0.1.0" +dependencies = [ + "axum", + "chrono", + "env_logger", + "json-patch", + "log", + "serde", + "serde_json", + "sqlx", + "tokio", + "tower", +] + [[package]] name = "ryu" version = "1.0.17" @@ -1324,18 +1347,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.199" +version = "1.0.200" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb" dependencies = [ "proc-macro2", "quote", @@ -1375,22 +1398,6 @@ dependencies = [ "serde", ] -[[package]] -name = "server" -version = "0.1.0" -dependencies = [ - "axum", - "chrono", - "env_logger", - "json-patch", - "log", - "serde", - "serde_json", - "sqlx", - "tokio", - "tower", -] - [[package]] name = "sha1" version = "0.10.6" diff --git a/Cargo.toml b/Cargo.toml index efa5485..3c41911 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "server" +name = "rvault-server" version = "0.1.0" edition = "2021" diff --git a/Containerfile b/Containerfile new file mode 100644 index 0000000..d2165d0 --- /dev/null +++ b/Containerfile @@ -0,0 +1,28 @@ +FROM docker.io/library/rust:1-alpine3.19 AS builder + +WORKDIR /src +RUN apk add --no-cache musl-dev + +RUN cargo install sqlx-cli --no-default-features --features sqlite +ENV DATABASE_URL=sqlite:/tmp/rvault.db +RUN touch /tmp/rvault.db + +COPY Cargo.toml Cargo.lock . +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + mkdir src && echo "fn main() {}" > src/main.rs && \ + cargo fetch --locked --target $(rustc -vV | sed -n 's|host: ||p') && \ + rm src/main.rs + +COPY migrations migrations +RUN cargo sqlx migrate run + +COPY src src +RUN --mount=type=cache,target=/usr/local/cargo/registry \ + cargo build --release --locked + +FROM docker.io/library/alpine:3.19 AS runner +# FROM scratch AS runner + +COPY --from=builder /src/target/release/rvault-server /usr/local/bin/rvault-server + +CMD ["/usr/local/bin/rvault-server"] diff --git a/Justfile b/Justfile index 5c66e48..c6b8c2e 100644 --- a/Justfile +++ b/Justfile @@ -1,6 +1,6 @@ build_tests: - podman build -t rvault-go-tests -f Containerfile ./go_client + podman build -t rvault-go-tests -f ./go_client/Containerfile ./go_client run_tests: build_tests podman run --rm -it --net=host rvault-go-tests