| FROM alpine:edge as builder | |
| LABEL stage=go-builder | |
| WORKDIR /app/ | |
| RUN apk add --no-cache bash curl gcc git go musl-dev | |
| RUN git clone https://github.com/AlistGo/alist.git . | |
| COPY go.mod go.sum ./ | |
| RUN go mod download | |
| COPY ./ ./ | |
| RUN bash build.sh release docker | |
| FROM alpine:edge | |
| ARG INSTALL_FFMPEG=false | |
| ARG INSTALL_ARIA2=false | |
| LABEL MAINTAINER="i@nn.ci" | |
| WORKDIR /opt/alist/ | |
| RUN apk update && \ | |
| apk upgrade --no-cache && \ | |
| apk add --no-cache bash ca-certificates su-exec tzdata; \ | |
| [ "$INSTALL_FFMPEG" = "true" ] && apk add --no-cache ffmpeg; \ | |
| [ "$INSTALL_ARIA2" = "true" ] && apk add --no-cache curl aria2 && \ | |
| mkdir -p /opt/aria2/.aria2 && \ | |
| wget https://github.com/P3TERX/aria2.conf/archive/refs/heads/master.tar.gz -O /tmp/aria-conf.tar.gz && \ | |
| tar -zxvf /tmp/aria-conf.tar.gz -C /opt/aria2/.aria2 --strip-components=1 && rm -f /tmp/aria-conf.tar.gz && \ | |
| sed -i 's|rpc-secret|#rpc-secret|g' /opt/aria2/.aria2/aria2.conf && \ | |
| sed -i 's|/root/.aria2|/opt/aria2/.aria2|g' /opt/aria2/.aria2/aria2.conf && \ | |
| sed -i 's|/root/.aria2|/opt/aria2/.aria2|g' /opt/aria2/.aria2/script.conf && \ | |
| sed -i 's|/root|/opt/aria2|g' /opt/aria2/.aria2/aria2.conf && \ | |
| sed -i 's|/root|/opt/aria2|g' /opt/aria2/.aria2/script.conf && \ | |
| touch /opt/aria2/.aria2/aria2.session && \ | |
| /opt/aria2/.aria2/tracker.sh ; \ | |
| rm -rf /var/cache/apk/* | |
| COPY --from=builder /app/bin/alist ./ | |
| COPY entrypoint.sh /entrypoint.sh | |
| RUN chmod +x /opt/alist/alist && \ | |
| chmod +x /entrypoint.sh && /entrypoint.sh version | |
| ENV PUID=0 PGID=0 UMASK=022 RUN_ARIA2=${INSTALL_ARIA2} | |
| VOLUME /opt/alist/data/ | |
| EXPOSE 5244 5245 | |
| CMD [ "/entrypoint.sh" ] |