2025-08-12 09:51:40 +08:00
### Default image is base. You can add other support by modifying BASE_IMAGE_TAG. The following parameters are supported: base (default), aria2, ffmpeg, aio
ARG BASE_IMAGE_TAG = base
2025-07-30 15:04:29 +08:00
FROM alpine:edge AS builder
2022-09-08 20:18:45 +08:00
LABEL stage = go-builder
WORKDIR /app/
2025-06-18 14:26:42 +08:00
RUN apk add --no-cache bash curl jq gcc git go musl-dev
2024-01-05 15:52:30 +08:00
COPY go.mod go.sum ./
RUN go mod download
2022-09-08 20:18:45 +08:00
COPY ./ ./
2024-01-05 15:52:30 +08:00
RUN bash build.sh release docker
2022-09-08 20:18:45 +08:00
2025-07-30 15:04:29 +08:00
FROM openlistteam/openlist-base-image:${BASE_IMAGE_TAG}
2025-08-12 09:51:40 +08:00
LABEL MAINTAINER = "OpenList"
2024-08-15 21:48:48 +08:00
ARG INSTALL_FFMPEG = false
2024-12-30 22:51:05 +08:00
ARG INSTALL_ARIA2 = false
2025-08-12 09:51:40 +08:00
ARG USER = openlist
ARG UID = 1001
ARG GID = 1001
2024-08-15 21:48:48 +08:00
2025-06-12 21:29:43 +08:00
WORKDIR /opt/openlist/
2024-08-15 21:48:48 +08:00
2025-08-19 10:27:33 +08:00
RUN addgroup -g ${ GID } ${ USER } && \
adduser -D -u ${ UID } -G ${ USER } ${ USER } && \
mkdir -p /opt/openlist/data
COPY --from= builder --chmod= 755 --chown= ${ UID } :${ GID } /app/bin/openlist ./
COPY --chmod= 755 --chown= ${ UID } :${ GID } entrypoint.sh /entrypoint.sh
2025-08-12 09:51:40 +08:00
USER ${USER}
2025-04-19 14:26:19 +08:00
RUN /entrypoint.sh version
2024-08-15 21:48:48 +08:00
2025-08-12 09:51:40 +08:00
ENV UMASK = 022 RUN _ARIA2 = ${ INSTALL_ARIA2 }
2025-06-12 21:29:43 +08:00
VOLUME /opt/openlist/data/
2023-06-10 22:26:09 +08:00
EXPOSE 5244 5245
2025-06-17 18:38:22 +08:00
CMD [ "/entrypoint.sh" ]