mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2025-05-10 18:05:44 +02:00
1. Move docker build files to separate dir from docker script files so that they won't be part of build context. Update dockerignore as well 2. Fix lib dependencies for alpine Signed-off-by: Roman Gershman <roman@dragonflydb.io>
58 lines
1.7 KiB
Text
58 lines
1.7 KiB
Text
# syntax=docker/dockerfile:1
|
|
FROM ubuntu:20.04 as builder
|
|
|
|
RUN \
|
|
rm -f /etc/apt/apt.conf.d/docker-clean; \
|
|
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
|
|
|
|
RUN \
|
|
--mount=type=cache,target=/var/cache/apt,sharing=locked \
|
|
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
|
export DEBIAN_FRONTEND=noninteractive && \
|
|
apt update && \
|
|
apt install -q -y autoconf-archive cmake curl git libssl-dev \
|
|
libunwind-dev ninja-build libtool gcc-9 g++-9 libboost-fiber-dev \
|
|
libxml2-dev zip libzstd-dev bison libicu-dev
|
|
|
|
RUN update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 40 \
|
|
--slave /usr/bin/g++ g++ /usr/bin/g++-9
|
|
|
|
WORKDIR /build
|
|
|
|
COPY . ./
|
|
|
|
RUN make HELIO_RELEASE=y release
|
|
|
|
RUN build-opt/dragonfly --version
|
|
|
|
RUN curl -O https://raw.githubusercontent.com/ncopa/su-exec/212b75144bbc06722fbd7661f651390dc47a43d1/su-exec.c && \
|
|
gcc -Wall -O2 su-exec.c -o su-exec
|
|
|
|
FROM ubuntu:20.04
|
|
|
|
RUN \
|
|
--mount=type=tmpfs,target=/var/cache/apt \
|
|
--mount=type=tmpfs,target=/var/lib/apt \
|
|
export DEBIAN_FRONTEND=noninteractive && \
|
|
apt update && \
|
|
apt install -q -y netcat-openbsd redis-tools libxml2
|
|
|
|
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/su-exec /usr/local/bin/
|
|
COPY --from=builder /build/build-opt/dragonfly /usr/local/bin/
|
|
|
|
HEALTHCHECK CMD /usr/local/bin/healthcheck.sh
|
|
ENTRYPOINT ["entrypoint.sh"]
|
|
|
|
# For inter-container communication.
|
|
EXPOSE 6379
|
|
|
|
USER dfly
|
|
|
|
CMD ["dragonfly", "--logtostderr"]
|