mirror of
https://github.com/ankitects/anki.git
synced 2025-09-19 14:32:22 -04:00

Hardcode them to: SYNC_PORT=8080 SYNC_BASE=/anki_data If these env variables are passed into the container with different values, they are ignored. The reasons is if the user modifies SYNC_BASE they risk data loss since anki-sync-server will no longer write data into the volume. If they change SYNC_PORT they need to also change it when mapping this internal port to the external port of the container, which could be confusing plus it has no benefit to allow this since it's always possible to change the external port even if the internal port is fixed to 8080 (e.g. `-p 1234:8080`). In both cases there is no benefit to making these values configurable and there are risks associated. Unfortunately there is no easy way of implementing this for the Dockerfile.distroless so it's up to the user not to modify these values.
32 lines
976 B
Text
32 lines
976 B
Text
FROM rust:1.83.0 AS builder
|
|
|
|
ARG ANKI_VERSION
|
|
|
|
RUN apt-get update && apt-get install -y build-essential protobuf-compiler && apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN cargo install --git https://github.com/ankitects/anki.git \
|
|
--tag ${ANKI_VERSION} \
|
|
--root /anki-server \
|
|
anki-sync-server
|
|
|
|
FROM gcr.io/distroless/cc-debian12
|
|
|
|
COPY --from=builder /anki-server/bin/anki-sync-server /usr/bin/anki-sync-server
|
|
|
|
# Note that as a user of the container you should NOT overwrite these values
|
|
# for safety and simplicity reasons
|
|
ENV SYNC_PORT=8080
|
|
ENV SYNC_BASE=/anki_data
|
|
|
|
EXPOSE ${SYNC_PORT}
|
|
|
|
CMD ["anki-sync-server"]
|
|
|
|
# This health check will work for Anki versions 24.08.x and newer.
|
|
# For older versions, it may incorrectly report an unhealthy status, which should not be the case.
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \
|
|
CMD ["anki-sync-server", "--healthcheck"]
|
|
|
|
VOLUME /anki_data
|
|
|
|
LABEL maintainer="Jean Khawand <jk@jeankhawand.com>"
|