| FROM alpine:edge as builder |
| LABEL stage=go-builder |
| WORKDIR /app/ |
| RUN apk add --no-cache bash curl gcc git go musl-dev |
| 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" ] |