dragonfly/tools/packaging/Dockerfile.ubuntu-dev
Roman Gershman 904775cfe6
chore: new docker build pipeline (#4503)
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.
2025-01-26 12:03:42 +02:00

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"]