Build server for multiple arch (#106)
This commit is contained in:
parent
9177984ff6
commit
4cdd0cbd40
16 changed files with 111 additions and 28 deletions
2
sync-server/Cargo.lock
generated
2
sync-server/Cargo.lock
generated
|
|
@ -2205,7 +2205,7 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "sync_server"
|
||||
version = "0.6.3"
|
||||
version = "0.6.4"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"axum",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ authors = ["Andras Schmelczer <andras@schmelczer.dev>"]
|
|||
edition = "2024"
|
||||
license = "MIT"
|
||||
repository = "https://github.com/schmelczer/vault-link"
|
||||
version = "0.6.3"
|
||||
version = "0.6.4"
|
||||
|
||||
[dependencies]
|
||||
serde = { version = "1.0.219", default-features = false, features = ["derive"] }
|
||||
|
|
|
|||
|
|
@ -1,33 +1,34 @@
|
|||
FROM rust:1.89 AS builder
|
||||
FROM rust:1.89-slim-trixie AS builder
|
||||
|
||||
WORKDIR /usr/src/backend
|
||||
|
||||
RUN apt update && apt install -y musl-tools
|
||||
RUN cargo install sqlx-cli
|
||||
RUN apt update && \
|
||||
apt install -y libssl-dev pkg-config && \
|
||||
cargo install sqlx-cli
|
||||
|
||||
# Build application
|
||||
COPY . .
|
||||
|
||||
RUN sqlx database create --database-url sqlite://db.sqlite3
|
||||
RUN sqlx migrate run --source src/app_state/database/migrations --database-url sqlite://db.sqlite3
|
||||
RUN sqlx database create --database-url sqlite://db.sqlite3 && \
|
||||
sqlx migrate run --source src/app_state/database/migrations --database-url sqlite://db.sqlite3 && \
|
||||
cargo build --release
|
||||
|
||||
RUN cargo build --release --target x86_64-unknown-linux-musl
|
||||
|
||||
# Runtime image
|
||||
FROM alpine:3.22.1
|
||||
FROM debian:trixie-slim
|
||||
|
||||
LABEL org.opencontainers.image.authors="andras@schmelczer.dev"
|
||||
|
||||
RUN apk add --no-cache curl
|
||||
RUN apt update && \
|
||||
apt install -y curl ca-certificates && \
|
||||
apt clean && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /usr/src/backend/target/x86_64-unknown-linux-musl/release/sync_server /app/sync_server
|
||||
COPY --from=builder /usr/src/backend/target/release/sync_server /app/sync_server
|
||||
|
||||
VOLUME /data
|
||||
EXPOSE 3000/tcp
|
||||
WORKDIR /data
|
||||
|
||||
HEALTHCHECK \
|
||||
--interval=30s \
|
||||
--timeout=5s \
|
||||
HEALTHCHECK --interval=30s --timeout=5s \
|
||||
CMD curl -f http://localhost:3000/vaults/fake/ping || exit 1
|
||||
|
||||
ENTRYPOINT ["/app/sync_server"]
|
||||
|
|
|
|||
|
|
@ -1,4 +1,9 @@
|
|||
[toolchain]
|
||||
channel = "1.89.0"
|
||||
targets = [ "x86_64-unknown-linux-gnu", "x86_64-unknown-linux-musl" ]
|
||||
targets = [
|
||||
"x86_64-unknown-linux-gnu",
|
||||
"x86_64-unknown-linux-musl",
|
||||
"aarch64-unknown-linux-gnu",
|
||||
"x86_64-pc-windows-gnu",
|
||||
]
|
||||
profile = "default"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue