mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-10 18:05:44 +02:00
Our previous weekly pipeline used qemu, was very slow and over-complicated. This one uses matrix with proper parallelization and the latest arm64 github runners. now it takes less than 30 minutes to build everything. lets make it daily.
38 lines
961 B
Text
38 lines
961 B
Text
# syntax=docker/dockerfile:1
|
|
FROM ghcr.io/romange/ubuntu-dev:20 AS builder
|
|
|
|
WORKDIR /build
|
|
|
|
COPY ./Makefile ./CMakeLists.txt ./
|
|
COPY src ./src
|
|
COPY cmake ./cmake
|
|
COPY helio ./helio
|
|
|
|
RUN make release
|
|
|
|
RUN build-release/dragonfly --version
|
|
|
|
FROM ubuntu:22.04
|
|
|
|
RUN --mount=type=tmpfs,target=/var/cache/apt \
|
|
--mount=type=tmpfs,target=/var/lib/apt/lists \
|
|
apt update && \
|
|
apt install -q -y --no-install-recommends netcat-openbsd ca-certificates redis-tools net-tools
|
|
|
|
RUN groupadd -r -g 999 dfly && useradd -r -g dfly -u 999 dfly
|
|
RUN mkdir /data && chown dfly:dfly /data
|
|
|
|
VOLUME /data
|
|
WORKDIR /data
|
|
|
|
COPY tools/docker/entrypoint.sh /usr/local/bin/entrypoint.sh
|
|
COPY tools/docker/healthcheck.sh /usr/local/bin/healthcheck.sh
|
|
COPY --from=builder /build/build-release/dragonfly /usr/local/bin/
|
|
|
|
HEALTHCHECK CMD /usr/local/bin/healthcheck.sh
|
|
ENTRYPOINT ["entrypoint.sh"]
|
|
|
|
# For inter-container communication.
|
|
EXPOSE 6379
|
|
|
|
CMD ["dragonfly", "--logtostderr"]
|