mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-30 00:55:00 +08:00
Merge #2178
2178: Refacto docker r=irevoire a=irevoire closes #2166 and #2085 ----------- I noticed many people had issues with the default configuration of our Dockerfile. Some examples: - #2166: If you use ubuntu and mount your `data.ms` in a volume (as shown in the [doc](https://docs.meilisearch.com/learn/getting_started/installation.html#download-and-launch)), you can't run meilisearch - #2085: Here, meilisearch was not able to erase the `data.ms` when loading a dump because it's the mount point Currently, we don't show how to use the snapshot and dumps with docker in the documentation. And it's quite hard to do: - You either send a big command to meilisearch to change the dump-path, snapshot-path and db-path a single directory and then mount that one - Or you mount three volumes - And there were other issues on the slack community I think this PR solve the problem. Now the image contains the `meilisearch` binary in the `/bin` directory, so it's easy to find and always in the `PATH`. It creates a `data` directory and moves the working-dir in it. So now you can find the `dumps`, `snapshots` and `data.ms` directory in `/data`. Here is the new command to run meilisearch with a volume: ``` docker run -it --rm -v $PWD/meili_data:/data -p 7700:7700 getmeili/meilisearch:latest ``` And if you need to import a dump or a snapshot, you don't need to restart your container and mount another volume. You can directly hit the `POST /dumps` route and then run: ``` docker run -it --rm -v $PWD/meili_data:/data -p 7700:7700 getmeili/meilisearch:latest meilisearch --import-dump dumps/20220217-152115159.dump ``` ------- You can already try this PR with the following docker image: ``` getmeili/meilisearch:test-docker-v0.26.0 ``` If you want to use the v0.25.2 I created another image; ``` getmeili/meilisearch:test-docker-v0.25.2 ``` ------ If you're using helm I created a branch [here](https://github.com/meilisearch/meilisearch-kubernetes/tree/test-docker-v0.26.0) that use the v0.26.0 image with the good volume 👍 If you use this conf with the v0.25.2, it should also work. Co-authored-by: Tamo <tamo@meilisearch.com>
This commit is contained in:
commit
f67167fa9f
15
Dockerfile
15
Dockerfile
@ -27,9 +27,20 @@ ENV MEILI_SERVER_PROVIDER docker
|
|||||||
RUN apk update --quiet \
|
RUN apk update --quiet \
|
||||||
&& apk add -q --no-cache libgcc tini curl
|
&& apk add -q --no-cache libgcc tini curl
|
||||||
|
|
||||||
COPY --from=compiler /meilisearch/target/release/meilisearch .
|
# add meilisearch to the `/bin` so you can run it from anywhere and it's easy
|
||||||
|
# to find.
|
||||||
|
COPY --from=compiler /meilisearch/target/release/meilisearch /bin/meilisearch
|
||||||
|
# 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
|
||||||
|
|
||||||
|
|
||||||
EXPOSE 7700/tcp
|
EXPOSE 7700/tcp
|
||||||
|
|
||||||
ENTRYPOINT ["tini", "--"]
|
ENTRYPOINT ["tini", "--"]
|
||||||
CMD ./meilisearch
|
CMD /bin/meilisearch
|
||||||
|
Loading…
Reference in New Issue
Block a user