tino 0.1.6

💡tino – a tiny init process written in Rust
FROM rust:1.88.0-alpine3.22 AS builder

RUN set -ex \
        \
    && apk update \
    && apk upgrade \
    && apk add --update --no-cache musl-dev openssl-dev perl make lld \
    && rustup target add x86_64-unknown-linux-musl

WORKDIR /opt/app

COPY Cargo.toml /opt/app/Cargo.toml
COPY Cargo.lock /opt/app/Cargo.lock

RUN mkdir -p /opt/app/src && echo "fn main() {}" > /opt/app/src/main.rs

RUN --mount=type=cache,target=/usr/local/cargo/registry true \
    set -ex \
        \
    && cargo build --release --target=x86_64-unknown-linux-musl

RUN rm -f /opt/app/src/main.rs
COPY src/ /opt/app/src/

RUN set -ex \
        \
    && export RUSTFLAGS="-C linker=lld" \
    && cargo build --release --target=x86_64-unknown-linux-musl


FROM scratch AS runtime

COPY --from=builder /opt/app/target/x86_64-unknown-linux-musl/release/tino /sbin/tino

ENTRYPOINT ["/sbin/tino"]