# setup build image + dependencies
FROM joseluisq/rust-linux-darwin-builder:1.66.1 as shipyard
COPY scripts/build-setup.sh .
RUN ./build-setup.sh
# copy source code
FROM shipyard as build
WORKDIR /usr/src/kickable
COPY src src
COPY proto proto
COPY examples examples
COPY scripts scripts
COPY Cargo.lock Cargo.toml Makefile build.rs ./
# build kickable
ENV RUSTFLAGS='-C linker=x86_64-linux-gnu-gcc'
RUN cargo build --release --bin kickable --all-features --locked --target x86_64-unknown-linux-musl
# create a scratch image with the static binary
FROM scratch as kickable
COPY --from=build /usr/src/kickable/target/x86_64-unknown-linux-musl/release/kickable /usr/local/bin/kickable
USER 1000
ENTRYPOINT ["/usr/local/bin/kickable"]
LABEL description="This is the kickable container app that asks the question... Can you kick it?"
LABEL maintainer="Hector Gray <defstream@gmail.com>"
LABEL version="1.0"