Pārlūkot izejas kodu

anki-sync-server:24.04

John 1 gadu atpakaļ
vecāks
revīzija
d9bae8fb9d

+ 17 - 10
anki-sync-server/Dockerfile

@@ -1,7 +1,17 @@
-FROM python:3.11-slim
+FROM rust:alpine3.19 AS builder
+
+ARG ANKI_VER=24.04
+
+RUN apk update \
+&& apk add --no-cache build-base protobuf \
+&& cargo install --git https://github.com/ankitects/anki.git \
+    --tag ${ANKI_VER} \
+    --root /anki-server  \
+    anki-sync-server
+
+FROM alpine:3.19
 
 
 ARG S6_VER=3.1.6.2
 ARG S6_VER=3.1.6.2
-ARG ANKI_VER=23.12.1
 
 
 ENV TZ=Asia/Shanghai
 ENV TZ=Asia/Shanghai
 ENV SYNC_USER1=user:pass
 ENV SYNC_USER1=user:pass
@@ -14,14 +24,11 @@ ENV SYNC_HOST=0.0.0.0
 ENV MAX_SYNC_PAYLOAD_MEGS=100
 ENV MAX_SYNC_PAYLOAD_MEGS=100
 
 
 COPY --chmod=755 root /
 COPY --chmod=755 root /
+COPY --from=builder /anki-server/bin/anki-sync-server /usr/local/bin/anki-sync-server
 
 
-RUN apt-get update -q -y \
-&& ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
-&& echo Asia/Shanghai > /etc/timezone \
-&& apt-get install -q -y wget xz-utils \
-#install anki
-&& pip install --no-cache-dir anki==${ANKI_VER} \
-#install s6-overlay
+RUN apk update \
+&& apk add --no-cache wget xz bash shadow tzdata \
+# install s6-overlay
 && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi \
 && if [ "$(uname -m)" = "x86_64" ];then s6_arch=x86_64;elif [ "$(uname -m)" = "aarch64" ];then s6_arch=aarch64;elif [ "$(uname -m)" = "armv7l" ];then s6_arch=arm; fi \
 && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz \
 && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz \
 && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
 && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
@@ -36,7 +43,7 @@ RUN apt-get update -q -y \
 && useradd -u 1000 -U -d /ankisyncdir -s /bin/false ankisync \
 && useradd -u 1000 -U -d /ankisyncdir -s /bin/false ankisync \
 && usermod -G users ankisync \
 && usermod -G users ankisync \
 #
 #
-&& apt-get clean \
+&& rm -rf /var/cache/apk/* \
 && rm -rf /tmp/*
 && rm -rf /tmp/*
 
 
 VOLUME /ankisyncdir
 VOLUME /ankisyncdir

+ 1 - 1
anki-sync-server/README.md

@@ -13,7 +13,7 @@
 
 
 |名称|版本|说明|
 |名称|版本|说明|
 |:-|:-|:-|
 |:-|:-|:-|
-|Anki-sync-server|23.12.1(official)|amd64;arm64v8|
+|Anki-sync-server|24.04(official)|amd64;arm64v8|
 |Anki-sync-server|2.4.0(ankicommunity)|amd64;arm64v8;arm32v7,支持(Anki:2.1.49、AnkiDroid:2.15.6)|
 |Anki-sync-server|2.4.0(ankicommunity)|amd64;arm64v8;arm32v7,支持(Anki:2.1.49、AnkiDroid:2.15.6)|
 
 
 ### 注意:
 ### 注意:

+ 1 - 1
anki-sync-server/root/etc/services.d/anki-sync-server/run

@@ -1,4 +1,4 @@
 #! /usr/bin/with-contenv bash
 #! /usr/bin/with-contenv bash
 
 
 # 启动anki-sync-server
 # 启动anki-sync-server
-exec s6-setuidgid ankisync python3 -m anki.syncserver
+exec s6-setuidgid ankisync anki-sync-server