diff --git a/docs/syncserver/Dockerfile b/docs/syncserver/Dockerfile index 6ad83f43b..f770e4760 100644 --- a/docs/syncserver/Dockerfile +++ b/docs/syncserver/Dockerfile @@ -15,6 +15,8 @@ ARG SYNC_PORT=8080 RUN adduser -D -h /home/anki anki +RUN mkdir -p /anki_data && chown -R anki /anki_data + COPY --from=builder /anki-server/bin/anki-sync-server /usr/local/bin/anki-sync-server @@ -24,6 +26,8 @@ USER anki ENV SYNC_PORT=${SYNC_PORT} +ENV SYNC_BASE=/anki_data + EXPOSE ${SYNC_PORT} CMD ["anki-sync-server"] @@ -33,4 +37,6 @@ CMD ["anki-sync-server"] HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD wget -qO- http://127.0.0.1:${SYNC_PORT}/health || exit 1 +VOLUME /anki_data + LABEL maintainer="Jean Khawand " diff --git a/docs/syncserver/Dockerfile.distroless b/docs/syncserver/Dockerfile.distroless index a66c4b2d0..71f3a8383 100644 --- a/docs/syncserver/Dockerfile.distroless +++ b/docs/syncserver/Dockerfile.distroless @@ -17,6 +17,8 @@ COPY --from=builder /anki-server/bin/anki-sync-server /usr/bin/anki-sync-server ENV SYNC_PORT=${SYNC_PORT} +ENV SYNC_BASE=/anki_data + EXPOSE ${SYNC_PORT} CMD ["anki-sync-server"] @@ -26,4 +28,6 @@ CMD ["anki-sync-server"] HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD ["anki-sync-server", "--healthcheck"] +VOLUME /anki_data + LABEL maintainer="Jean Khawand " diff --git a/docs/syncserver/README.md b/docs/syncserver/README.md index 45929d460..8e88441e3 100644 --- a/docs/syncserver/README.md +++ b/docs/syncserver/README.md @@ -38,14 +38,27 @@ Once done with build, you can proceed with running this image with the following ```bash # this will create anki server -docker run -d -e "SYNC_USER1=admin:admin" -p 8080:8080 --name anki-sync-server anki-sync-server +docker run -d \ + -e "SYNC_USER1=admin:admin" \ + -p 8080:8080 \ + --mount type=volume,src=anki-sync-server-data,dst=/anki_data \ + --name anki-sync-server \ + anki-sync-server ``` However, if you want to have multiple users, you have to use the following approach: ```bash # this will create anki server with multiple users -docker run -d -e "SYNC_USER1=test:test" -e "SYNC_USER2=test2:test2" -p 8080:8080 --name anki-sync-server anki-sync-server +docker run -d \ + -e "SYNC_USER1=admin:admin" \ + -e "SYNC_USER2=admin2:admin2" \ + -p 8080:8080 \ + --mount type=volume,src=anki-sync-server-data,dst=/anki_data \ + --name anki-sync-server \ + anki-sync-server ``` -Moreover, you can pass additional env vars mentioned [here](https://docs.ankiweb.net/sync-server.html) +Moreover, you can pass additional env vars mentioned +[here](https://docs.ankiweb.net/sync-server.html). Note that you should **not** +override SYNC_BASE because you risk data loss.