Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions rust/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Build stage
FROM rust:1.91-bookworm AS builder

WORKDIR /build

# Copy workspace files
COPY Cargo.toml Cargo.lock ./
COPY rustfmt.toml ./

# Copy all workspace members
COPY server ./server
COPY api ./api
COPY impls ./impls
COPY auth-impls ./auth-impls
Comment on lines +6 to +14
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not familiar with Docker, looked elsewhere sounds like we could replace all these lines with just COPY . . ?


# Build the application in release mode
RUN cargo build --release --bin vss-server

# Runtime stage
FROM debian:bookworm-slim

# Install runtime dependencies
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ca-certificates \
libssl3 \
Comment on lines +25 to +26
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wasn't aware of these dependencies are you sure these are needed ?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Likely yes (cf. #77), though IIRC I had to also install libssl-dev and pkg-config, too (cf. https://docs.rs/openssl/latest/openssl/#automatic).

&& rm -rf /var/lib/apt/lists/*

WORKDIR /app

# Copy the compiled binary from builder
COPY --from=builder /build/target/release/vss-server /app/vss-server

# Copy default configuration file
#COPY server/vss-server-config.toml /app/vss-server-config.toml
Copy link
Contributor

@tankyleo tankyleo Jan 7, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For now this step is mandatory, so let's not comment it out.


# Environment variables for PostgreSQL connection
#ENV VSS_POSTGRESQL_USERNAME=postgres
#ENV VSS_POSTGRESQL_PASSWORD=YOU_MUST_CHANGE_THIS_PASSWORD
#ENV VSS_POSTGRESQL_HOST=postgres
#ENV VSS_POSTGRESQL_PORT=5432
#ENV VSS_POSTGRESQL_DATABASE=postgres
Comment on lines +40 to +42
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These env vars don't exist yet, will be adding all of them in #73, would you mind holding on until that PR gets merged ? Should be soon


EXPOSE 8080

# Run the server with the config file
CMD ["/app/vss-server", "/app/vss-server-config.toml"]