sequintools 0.3.0

A suite of tools for manipulating and reporting on NGS data that has sequins added to the sample.
# Use multi-stage builds to reduce the size of the final image
# https://docs.docker.com/build/building/multi-stage/#use-multi-stage-builds

# Stage 1: Build the rust app
FROM mcr.microsoft.com/devcontainers/rust:1-1-bookworm AS builder

RUN apt-get update && apt-get install -y --no-install-recommends \
  cmake \
  clang \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/sequins

# Copy the Cargo.toml and Cargo.lock files first
COPY ./Cargo.toml ./Cargo.toml
COPY ./Cargo.lock ./Cargo.lock

COPY ./src ./src

RUN cargo build --release

# Stage 2: Create final Docker image with debain-slim.
FROM ghcr.io/linuxcontainers/debian-slim:latest

# Copy app and test data.
COPY --from=builder /usr/sequins/target/release/sequintools /usr/local/bin/sequintools

CMD [ "sequintools" ]