|
| 1 | +FROM rust:1.54.0-slim-buster as builder |
| 2 | + |
| 3 | +ARG DEBIAN_FRONTEND=noninteractive |
| 4 | + |
| 5 | +# ****************************************************************************** |
| 6 | +# Install dependencies |
| 7 | +# ****************************************************************************** |
| 8 | +RUN set -eux \ |
| 9 | + && apt-get update \ |
| 10 | + && apt-get install --no-install-recommends --no-install-suggests --yes \ |
| 11 | + upx-ucl \ |
| 12 | + && apt-get autoremove --purge \ |
| 13 | + && apt-get autoclean \ |
| 14 | + && apt-get clean \ |
| 15 | + && rm -rf /var/lib/apt/lists/* \ |
| 16 | + && echo ">>> FINISHED DEPENDENCIES INSTALL" |
| 17 | + |
| 18 | +# ****************************************************************************** |
| 19 | +# Copy source code into container |
| 20 | +# ****************************************************************************** |
| 21 | +COPY . /opt/ |
| 22 | + |
| 23 | +# ****************************************************************************** |
| 24 | +# Compile tera cli application from source |
| 25 | +# ****************************************************************************** |
| 26 | +RUN set -eux \ |
| 27 | + && cd /opt/ \ |
| 28 | + && rustup target add x86_64-unknown-linux-musl \ |
| 29 | + && cargo build --release --target x86_64-unknown-linux-musl \ |
| 30 | + && upx --best --lzma target/x86_64-unknown-linux-musl/release/tera \ |
| 31 | + && mv target/x86_64-unknown-linux-musl/release/tera /usr/bin/ \ |
| 32 | + && tera --version \ |
| 33 | + && rm -rf target \ |
| 34 | + && echo ">>> FINISHED COMPILING 'tera-cli'" |
| 35 | + |
| 36 | +# ------------------------------------------------------------------------------ |
| 37 | +# ------------------------------------------------------------------------------ |
| 38 | + |
| 39 | +FROM alpine |
| 40 | + |
| 41 | +# ****************************************************************************** |
| 42 | +# Install compiled tera cli |
| 43 | +# ****************************************************************************** |
| 44 | +COPY --from=builder /usr/bin/tera /usr/bin/tera |
| 45 | + |
| 46 | +USER guest |
| 47 | + |
| 48 | +WORKDIR /opt |
| 49 | + |
| 50 | +ENTRYPOINT ["/usr/bin/tera"] |
0 commit comments