MeiliSearch/Dockerfile

49 lines
1.5 KiB
Docker
Raw Normal View History

2021-02-28 16:56:05 +01:00
# Compile
2022-12-06 11:09:57 +01:00
FROM rust:alpine3.16 AS compiler
2021-02-28 16:56:05 +01:00
2022-03-26 20:06:00 +08:00
RUN apk add -q --update-cache --no-cache build-base openssl-dev
2021-02-28 16:56:05 +01:00
WORKDIR /
2021-02-28 16:56:05 +01:00
ARG COMMIT_SHA
ARG COMMIT_DATE
ARG GIT_TAG
ENV VERGEN_GIT_SHA=${COMMIT_SHA} VERGEN_GIT_COMMIT_TIMESTAMP=${COMMIT_DATE} VERGEN_GIT_SEMVER_LIGHTWEIGHT=${GIT_TAG}
2022-03-26 20:06:00 +08:00
ENV RUSTFLAGS="-C target-feature=-crt-static"
2023-05-25 11:48:26 +02:00
COPY . .
2023-04-18 15:15:33 +09:00
RUN set -eux; \
2022-03-26 20:06:00 +08:00
apkArch="$(apk --print-arch)"; \
if [ "$apkArch" = "aarch64" ]; then \
2022-02-14 18:08:57 +08:00
export JEMALLOC_SYS_WITH_LG_PAGE=16; \
fi && \
cargo build --release -p meilisearch -p meilitool
2021-02-28 16:56:05 +01:00
# Run
2022-12-06 11:09:57 +01:00
FROM alpine:3.16
2021-02-28 16:56:05 +01:00
ENV MEILI_HTTP_ADDR 0.0.0.0:7700
ENV MEILI_SERVER_PROVIDER docker
2021-02-28 16:56:05 +01:00
2021-10-16 11:37:01 +02:00
RUN apk update --quiet \
2021-12-21 13:38:39 +01:00
&& apk add -q --no-cache libgcc tini curl
# add meilisearch and meilitool to the `/bin` so you can run it from anywhere
# and it's easy to find.
2023-05-25 11:48:26 +02:00
COPY --from=compiler /meilisearch/target/release/meilisearch /bin/meilisearch
COPY --from=compiler /meilisearch/target/release/meilitool /bin/meilitool
# To stay compatible with the older version of the container (pre v0.27.0) we're
# going to symlink the meilisearch binary in the path to `/meilisearch`
RUN ln -s /bin/meilisearch /meilisearch
# This directory should hold all the data related to meilisearch so we're going
# to move our PWD in there.
# We don't want to put the meilisearch binary
WORKDIR /meili_data
2021-02-28 16:56:05 +01:00
EXPOSE 7700/tcp
2021-10-12 11:44:59 -07:00
ENTRYPOINT ["tini", "--"]
CMD /bin/meilisearch