Add multi-package Alpine packaging
This commit is contained in:
77
packaging/alpine/local/greptimedb/Dockerfile
Normal file
77
packaging/alpine/local/greptimedb/Dockerfile
Normal file
@@ -0,0 +1,77 @@
|
||||
# syntax=docker/dockerfile:1.7
|
||||
|
||||
ARG ALPINE_VERSION=3.23
|
||||
ARG RUST_VERSION=1.90.0
|
||||
|
||||
FROM alpine:${ALPINE_VERSION} AS builder
|
||||
|
||||
ARG GREPTIMEDB_REF=main
|
||||
ARG RUST_VERSION
|
||||
|
||||
RUN apk add --no-cache \
|
||||
bash \
|
||||
ca-certificates \
|
||||
curl \
|
||||
git \
|
||||
build-base \
|
||||
linux-headers \
|
||||
clang \
|
||||
lld \
|
||||
mold \
|
||||
cmake \
|
||||
make \
|
||||
perl \
|
||||
pkgconf \
|
||||
protobuf \
|
||||
protobuf-dev \
|
||||
zlib-dev \
|
||||
zlib-static \
|
||||
zstd-dev \
|
||||
zstd-static \
|
||||
openssl-dev \
|
||||
openssl-libs-static \
|
||||
binutils \
|
||||
coreutils
|
||||
|
||||
ENV RUSTUP_HOME=/usr/local/rustup
|
||||
ENV CARGO_HOME=/usr/local/cargo
|
||||
ENV PATH=/usr/local/cargo/bin:${PATH}
|
||||
ENV CARGO_BUILD_JOBS=2
|
||||
ENV LIBRARY_PATH=/usr/lib
|
||||
|
||||
RUN curl https://sh.rustup.rs -sSf | sh -s -- \
|
||||
-y \
|
||||
--profile minimal \
|
||||
--default-toolchain ${RUST_VERSION}
|
||||
|
||||
WORKDIR /src
|
||||
|
||||
RUN git clone https://github.com/GreptimeTeam/greptimedb.git . \
|
||||
&& git checkout ${GREPTIMEDB_REF}
|
||||
|
||||
RUN --mount=type=cache,target=/usr/local/cargo/registry \
|
||||
--mount=type=cache,target=/usr/local/cargo/git \
|
||||
cargo build \
|
||||
--release \
|
||||
--locked \
|
||||
--bin greptime \
|
||||
--features servers/dashboard
|
||||
|
||||
RUN mkdir -p /out \
|
||||
&& cp /src/target/release/greptime /out/greptime.debug \
|
||||
&& cp /src/target/release/greptime /out/greptime \
|
||||
&& strip /out/greptime \
|
||||
&& ls -lh /out \
|
||||
&& file /out/greptime \
|
||||
&& ldd /out/greptime || true
|
||||
|
||||
|
||||
FROM scratch AS artifact
|
||||
COPY --from=builder /out/greptime /greptime
|
||||
COPY --from=builder /out/greptime.debug /greptime.debug
|
||||
|
||||
|
||||
FROM alpine:${ALPINE_VERSION} AS runtime
|
||||
RUN apk add --no-cache ca-certificates
|
||||
COPY --from=builder /out/greptime /usr/local/bin/greptime
|
||||
ENTRYPOINT ["/usr/local/bin/greptime"]
|
||||
Reference in New Issue
Block a user