mirror of
https://github.com/dragonflydb/dragonfly
synced 2024-11-21 23:19:53 +00:00
0081f4de71
* docker_healthcheck_fix * grep_fix_for_alpine * added environment variable for healthcheck and changed the port extraction accorfingly
49 lines
1.4 KiB
Docker
49 lines
1.4 KiB
Docker
# syntax=docker/dockerfile:1
|
|
FROM gcr.io/cadvisor/cadvisor:v0.46.0 as libpfm_donor
|
|
|
|
FROM alpine:3 as builder
|
|
|
|
# "openssl-libs-static" fixes "Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the"
|
|
RUN apk add autoconf-archive automake bash bison boost-dev cmake coreutils net-tools \
|
|
curl ccache git gcc gdb g++ libunwind-dev libtool make ninja \
|
|
openssl-dev openssl-libs-static patch zip zstd-static
|
|
|
|
# This is required to make static linking work
|
|
RUN ls -1 /usr/lib/libboost_*.so | while read -r _file; do ln -sfv ${_file} ${_file//.so/.a}; done
|
|
|
|
# Borrow libpfm from cadvisor, so we don't have to build it ourselves
|
|
# https://github.com/google/cadvisor/blob/master/deploy/Dockerfile
|
|
COPY --from=libpfm_donor /usr/local/lib/libpfm.so* /usr/local/lib/
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . ./
|
|
|
|
RUN make release
|
|
|
|
RUN build-release/dragonfly --version
|
|
|
|
FROM alpine:3
|
|
|
|
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/
|
|
|
|
RUN apk --no-cache add libgcc libstdc++ \
|
|
su-exec netcat-openbsd boost-context && ldd /usr/local/bin/dragonfly
|
|
|
|
RUN addgroup -S -g 1000 dfly && adduser -S -G dfly -u 999 dfly
|
|
RUN mkdir /data && chown dfly:dfly /data
|
|
|
|
VOLUME /data
|
|
WORKDIR /data
|
|
|
|
HEALTHCHECK CMD /usr/local/bin/healthcheck.sh
|
|
ENTRYPOINT ["entrypoint.sh"]
|
|
|
|
EXPOSE 6379
|
|
|
|
USER dfly
|
|
|
|
CMD ["dragonfly", "--logtostderr"]
|