Dockerfile 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #compiling aria2c
  2. FROM ghcr.io/gshang2017/aria2c:latest AS compilingaria2c
  3. # docker aria2
  4. FROM alpine:3.22
  5. ARG AriaNg_VER=1.3.11
  6. ARG S6_VER=3.2.1.0
  7. ENV UID=1000
  8. ENV GID=1000
  9. ENV UMASK=022
  10. ENV TZ=Asia/Shanghai
  11. ENV ARIA2_RPC_SECRET=
  12. ENV ARIA2_RPC_LISTEN_PORT=6800
  13. ENV ARIA2_LISTEN_PORT=6881
  14. ENV ARIA2_TRACKERS_UPDATE_AUTO=true
  15. ENV ARIA2_TRACKERS_LIST_URL=https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt
  16. ENV ARIA2_CONF_LANGUAGE=zh_Hans
  17. ENV ENABLE_ARIANG=true
  18. ENV ARIANG_PORT=8080
  19. ENV ARIANG_RPC_SECRET_AUTO=false
  20. ENV ARIANG_RPC_LISTEN_PORT_AUTO=true
  21. ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
  22. COPY --chmod=755 root /
  23. COPY --from=compilingaria2c --chmod=755 /usr/local/bin/aria2c /usr/local/bin/aria2c
  24. # install bash darkhttpd tzdata s6 overlay AriaNg aria2 shadow
  25. RUN apk add --no-cache bash curl ca-certificates darkhttpd tzdata shadow c-ares expat gmp gnutls sqlite-libs libstdc++ libssh2 \
  26. && 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 \
  27. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-noarch.tar.xz \
  28. && tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz \
  29. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-${s6_arch}.tar.xz \
  30. && tar -C / -Jxpf /tmp/s6-overlay-${s6_arch}.tar.xz \
  31. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-noarch.tar.xz \
  32. && tar -C / -Jxpf /tmp/s6-overlay-symlinks-noarch.tar.xz \
  33. && wget -P /tmp https://github.com/just-containers/s6-overlay/releases/download/v${S6_VER}/s6-overlay-symlinks-arch.tar.xz \
  34. && tar -C / -Jxpf /tmp/s6-overlay-symlinks-arch.tar.xz \
  35. #create aria2 user
  36. && useradd -u 1000 -U -d /config -s /bin/false aria2 \
  37. && usermod -G users aria2 \
  38. # install AriaNg
  39. && wget -P /tmp https://github.com/mayswind/AriaNg/releases/download/${AriaNg_VER}/AriaNg-${AriaNg_VER}.zip \
  40. && mkdir -p /usr/local/aria2/AriaNg/js/defaultsjs \
  41. && unzip -d /usr/local/aria2/AriaNg /tmp/AriaNg-${AriaNg_VER}.zip \
  42. #modify js
  43. #max-connection-per-server
  44. && sed -i 's/max:16/max:128/g' /usr/local/aria2/AriaNg/js/aria-ng* \
  45. #cp aria-ng* to defaultsjs
  46. && cp /usr/local/aria2/AriaNg/js/aria-ng* /usr/local/aria2/AriaNg/js/defaultsjs \
  47. #conf trackers
  48. && curl -so /tmp/trackers_all.txt $ARIA2_TRACKERS_LIST_URL \
  49. && Newtrackers="bt-tracker=`awk NF /tmp/trackers_all.txt|sed ":a;N;s/\n/,/g;ta"`" \
  50. && sed -i 's@bt-tracker=@'"$Newtrackers"'@g' /usr/local/aria2/defaults/aria2.conf \
  51. #
  52. && rm -rf /var/cache/apk/* /tmp/*
  53. VOLUME /Downloads /config
  54. EXPOSE 6800 8080 6881 6881/udp
  55. ENTRYPOINT [ "/init" ]