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