2021-02-28 23:56:05 +08:00
|
|
|
# Compile
|
2023-12-18 17:59:09 +08:00
|
|
|
FROM rust:1.71.1-alpine3.18 AS compiler
|
2021-02-28 23:56:05 +08:00
|
|
|
|
2022-03-26 20:06:00 +08:00
|
|
|
RUN apk add -q --update-cache --no-cache build-base openssl-dev
|
2021-02-28 23:56:05 +08:00
|
|
|
|
2023-10-30 21:17:15 +08:00
|
|
|
WORKDIR /
|
2021-02-28 23:56:05 +08:00
|
|
|
|
2021-03-31 01:03:13 +08:00
|
|
|
ARG COMMIT_SHA
|
|
|
|
ARG COMMIT_DATE
|
2023-02-10 22:48:54 +08:00
|
|
|
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"
|
2021-03-31 01:03:13 +08:00
|
|
|
|
2023-05-25 17:48:26 +08:00
|
|
|
COPY . .
|
2023-04-18 14:15:33 +08: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 && \
|
2023-10-30 21:17:15 +08:00
|
|
|
cargo build --release -p meilisearch -p meilitool
|
2021-02-28 23:56:05 +08:00
|
|
|
|
|
|
|
# Run
|
2022-12-06 18:09:57 +08:00
|
|
|
FROM alpine:3.16
|
2021-02-28 23:56:05 +08:00
|
|
|
|
2021-10-03 01:42:13 +08:00
|
|
|
ENV MEILI_HTTP_ADDR 0.0.0.0:7700
|
2021-10-20 23:53:43 +08:00
|
|
|
ENV MEILI_SERVER_PROVIDER docker
|
2021-02-28 23:56:05 +08:00
|
|
|
|
2021-10-16 17:37:01 +08:00
|
|
|
RUN apk update --quiet \
|
2023-12-19 02:05:46 +08:00
|
|
|
&& apk add -q --no-cache libgcc libstdc++ tini curl
|
2021-12-21 20:38:39 +08:00
|
|
|
|
2023-10-30 21:17:15 +08:00
|
|
|
# add meilisearch and meilitool to the `/bin` so you can run it from anywhere
|
|
|
|
# and it's easy to find.
|
2023-10-31 00:27:59 +08:00
|
|
|
COPY --from=compiler /target/release/meilisearch /bin/meilisearch
|
|
|
|
COPY --from=compiler /target/release/meilitool /bin/meilitool
|
2022-04-09 06:27:36 +08:00
|
|
|
# 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 23:56:05 +08:00
|
|
|
|
|
|
|
EXPOSE 7700/tcp
|
|
|
|
|
2021-10-13 02:44:59 +08:00
|
|
|
ENTRYPOINT ["tini", "--"]
|
2022-04-09 06:27:36 +08:00
|
|
|
CMD /bin/meilisearch
|