FROM ubuntu as build
WORKDIR /app
ENV PIP_ROOT_USER_ACTION=ignore
# RUN apt-get update &&\
# apt-get install -y python3-pip &&\
# pip install apt-smart &&\
# apt-smart -a
RUN \
apt-get update &&\
apt-get install -y \
protobuf-compiler curl bash build-essential libssl-dev pkg-config mold clang
SHELL [ "/bin/bash", "-c" ]
ENV SHELL=/bin/bash
ENV CARGO_HOME=/opt/rust
ENV RUSTUP_HOME=/opt/rust
RUN curl https://sh.rustup.rs -sSf | \
sh -s -- -y --no-modify-path --default-toolchain nightly
ADD ./sh/cpso.sh .
ADD Cargo.toml .
ADD ./src ./src
RUN \
source $CARGO_HOME/env &&\
mkdir -p out &&\
TARGET=$(rustc -vV | sed -n 's|host: ||p') &&\
export RUSTFLAGS="--cfg reqwest_unstable -Ctarget-feature=+crt-static $RUSTFLAGS" &&\
cargo build \
--release \
--out-dir out \
-Z unstable-options \
--target=$TARGET &&\
mv out/* m &&\
./cpso.sh m
# FROM ubuntu
FROM scratch
ENV LD_LIBRARY_PATH=/lib
COPY --from=build /so/ lib/
WORKDIR /
COPY --from=build /app/m /app
ENTRYPOINT ["/app"]