Sign inSign up

kamthorn/meilisearch

By kamthorn

•Updated 6 days ago

Meilisearch (Thai Tokenization Patch)

Image
Databases & storage
1

4.8K

kamthorn/meilisearch repository overview

⁠Meilisearch (Thai Tokenization Patched)

This repository contains a custom build of Meilisearch specifically patched to improve Thai language support.

⁠🚀 What makes this image different?

The core difference is the inclusion of a fix for Thai word segmentation. It uses a patched version of the charabia library (the tokenizer used by Meilisearch) from PR #372⁠.

  • Base Version: Meilisearch v1.54.0 (also available: v1.41.0 – v1.54.0, mirroring every official upstream release)
  • Tokenizer: Charabia⁠ with Thai patch (PR #372)
  • OS: Alpine Linux (lightweight image)
  • Architecture: linux/amd64, linux/arm64 (multi-arch manifest — Docker/Podman pulls the right one automatically)

⁠🏷️ Available tags

TagPoints to
latest, v1Latest Meilisearch release (currently v1.54.0)
v1.54, v1.54.0v1.54.x releases
v1.53, v1.53.2, v1.53.1, v1.53.0v1.53.x releases
v1.52, v1.52.3, v1.52.2, v1.52.0v1.52.x releases
v1.51 … v1.41Every minor/patch release from v1.41.0 up to the latest, each pinned individually

Pin to an exact patch version (e.g. v1.54.0) for reproducible deployments, or use latest/v1 to always track the newest build.

⁠🛠 Usage

You can run this image exactly like the official Meilisearch image:

docker run -it -d \
  -p 7700:7700 \
  -v $(pwd)/meili_data:/meili_data \
  -e MEILI_MASTER_KEY="YOUR_SECURE_KEY" \
  kamthorn/meilisearch:v1.54.0
⁠Using with Docker Compose
services:
  meilisearch:
    image: kamthorn/meilisearch:v1.54.0
    ports:
      - "7700:7700"
    volumes:
      - ./meili_data:/meili_data
    environment:
      - MEILI_MASTER_KEY=YOUR_SECURE_KEY
      - MEILI_ENV=production

⁠📝 Technical Details

This image is built using a multi-stage Dockerfile:

  1. Build Stage: Rust Alpine image compiles the binary from source (native amd64, QEMU-emulated arm64).
  2. Patching: Overrides the charabia dependency in Cargo.toml via the [patch.crates-io] mechanism.
  3. Runtime Stage: Minimal Alpine Linux image with only the necessary shared libraries.
# Stage 1: Compile
FROM rust:1.98.1-alpine3.24 AS compiler

RUN apk -q --no-cache --update --available upgrade && \
    apk add -q --no-cache build-base openssl-dev git

WORKDIR /

RUN git clone --branch v1.54.0 --depth 1 https://github.com/meilisearch/meilisearch.git meilisearch-repo
WORKDIR /meilisearch-repo

RUN echo '[patch.crates-io]' >> Cargo.toml && \
    echo 'charabia = { git = "https://github.com/kamthorn/charabia.git", branch = "thai_tokenize_bug" }' >> Cargo.toml

ARG COMMIT_SHA=unknown
ARG COMMIT_DATE=unknown
ARG GIT_TAG=v1.54.0
ARG EXTRA_ARGS=""

ENV VERGEN_GIT_SHA=${COMMIT_SHA} \
    VERGEN_GIT_COMMIT_TIMESTAMP=${COMMIT_DATE} \
    VERGEN_GIT_DESCRIBE=${GIT_TAG}

ENV RUSTFLAGS="-C target-feature=-crt-static"

RUN set -eux; \
    cargo build --release -p meilisearch -p meilitool ${EXTRA_ARGS}

# Stage 2: Run
FROM alpine:3.24

LABEL org.opencontainers.image.source="https://github.com/meilisearch/meilisearch"
ENV MEILI_HTTP_ADDR 0.0.0.0:7700
ENV MEILI_SERVER_PROVIDER docker

RUN apk -q --no-cache --update upgrade && \
    apk add -q --no-cache libgcc tini curl

COPY --from=compiler /meilisearch-repo/target/release/meilisearch /bin/meilisearch
COPY --from=compiler /meilisearch-repo/target/release/meilitool /bin/meilitool

RUN ln -s /bin/meilisearch /meilisearch

WORKDIR /meili_data
EXPOSE 7700/tcp

ENTRYPOINT ["tini", "--"]
CMD ["/bin/meilisearch"]

⁠🔗 References

Official Meilisearch: github.com/meilisearch/meilisearch⁠

Thai Tokenizer PR: meilisearch/charabia#372⁠

Maintained by Kamthorn

Tag summary

Content type

Image

Digest

sha256:3dc5ca394…

Size

109.4 MB

Last updated

6 days ago

docker pull kamthorn/meilisearch