mirror of
https://github.com/OpenListTeam/OpenList.git
synced 2025-09-19 12:16:24 +08:00
feat(ci): add the default user for docker image (#1036)
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
18
Dockerfile
18
Dockerfile
@ -1,3 +1,6 @@
|
|||||||
|
### 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
|
||||||
|
|
||||||
FROM alpine:edge AS builder
|
FROM alpine:edge AS builder
|
||||||
LABEL stage=go-builder
|
LABEL stage=go-builder
|
||||||
WORKDIR /app/
|
WORKDIR /app/
|
||||||
@ -7,21 +10,26 @@ RUN go mod download
|
|||||||
COPY ./ ./
|
COPY ./ ./
|
||||||
RUN bash build.sh release docker
|
RUN bash build.sh release docker
|
||||||
|
|
||||||
### 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
|
|
||||||
FROM openlistteam/openlist-base-image:${BASE_IMAGE_TAG}
|
FROM openlistteam/openlist-base-image:${BASE_IMAGE_TAG}
|
||||||
|
LABEL MAINTAINER="OpenList"
|
||||||
ARG INSTALL_FFMPEG=false
|
ARG INSTALL_FFMPEG=false
|
||||||
ARG INSTALL_ARIA2=false
|
ARG INSTALL_ARIA2=false
|
||||||
LABEL MAINTAINER="OpenList"
|
ARG USER=openlist
|
||||||
|
ARG UID=1001
|
||||||
|
ARG GID=1001
|
||||||
|
|
||||||
WORKDIR /opt/openlist/
|
WORKDIR /opt/openlist/
|
||||||
|
|
||||||
COPY --chmod=755 --from=builder /app/bin/openlist ./
|
COPY --chmod=755 --from=builder /app/bin/openlist ./
|
||||||
COPY --chmod=755 entrypoint.sh /entrypoint.sh
|
COPY --chmod=755 entrypoint.sh /entrypoint.sh
|
||||||
|
RUN adduser -u ${UID} -g ${GID} -h /opt/openlist/data -D -s /bin/sh ${USER} \
|
||||||
|
&& chown -R ${UID}:${GID} /opt \
|
||||||
|
&& chown -R ${UID}:${GID} /entrypoint.sh
|
||||||
|
|
||||||
|
USER ${USER}
|
||||||
RUN /entrypoint.sh version
|
RUN /entrypoint.sh version
|
||||||
|
|
||||||
ENV PUID=0 PGID=0 UMASK=022 RUN_ARIA2=${INSTALL_ARIA2}
|
ENV UMASK=022 RUN_ARIA2=${INSTALL_ARIA2}
|
||||||
VOLUME /opt/openlist/data/
|
VOLUME /opt/openlist/data/
|
||||||
EXPOSE 5244 5245
|
EXPOSE 5244 5245
|
||||||
CMD [ "/entrypoint.sh" ]
|
CMD [ "/entrypoint.sh" ]
|
||||||
|
@ -1,18 +1,26 @@
|
|||||||
ARG BASE_IMAGE_TAG=base
|
ARG BASE_IMAGE_TAG=base
|
||||||
FROM ghcr.io/openlistteam/openlist-base-image:${BASE_IMAGE_TAG}
|
FROM ghcr.io/openlistteam/openlist-base-image:${BASE_IMAGE_TAG}
|
||||||
|
LABEL MAINTAINER="OpenList"
|
||||||
ARG TARGETPLATFORM
|
ARG TARGETPLATFORM
|
||||||
ARG INSTALL_FFMPEG=false
|
ARG INSTALL_FFMPEG=false
|
||||||
ARG INSTALL_ARIA2=false
|
ARG INSTALL_ARIA2=false
|
||||||
LABEL MAINTAINER="OpenList"
|
ARG USER=openlist
|
||||||
|
ARG UID=1001
|
||||||
|
ARG GID=1001
|
||||||
|
|
||||||
WORKDIR /opt/openlist/
|
WORKDIR /opt/openlist/
|
||||||
|
|
||||||
COPY --chmod=755 /build/${TARGETPLATFORM}/openlist ./
|
COPY --chmod=755 /build/${TARGETPLATFORM}/openlist ./
|
||||||
COPY --chmod=755 entrypoint.sh /entrypoint.sh
|
COPY --chmod=755 entrypoint.sh /entrypoint.sh
|
||||||
|
|
||||||
|
RUN adduser -u ${UID} -g ${GID} -h /opt/openlist/data -D -s /bin/sh ${USER} \
|
||||||
|
&& chown -R ${UID}:${GID} /opt \
|
||||||
|
&& chown -R ${UID}:${GID} /entrypoint.sh
|
||||||
|
|
||||||
|
USER ${USER}
|
||||||
RUN /entrypoint.sh version
|
RUN /entrypoint.sh version
|
||||||
|
|
||||||
ENV PUID=0 PGID=0 UMASK=022 RUN_ARIA2=${INSTALL_ARIA2}
|
ENV UMASK=022 RUN_ARIA2=${INSTALL_ARIA2}
|
||||||
VOLUME /opt/openlist/data/
|
VOLUME /opt/openlist/data/
|
||||||
EXPOSE 5244 5245
|
EXPOSE 5244 5245
|
||||||
CMD [ "/entrypoint.sh" ]
|
CMD [ "/entrypoint.sh" ]
|
@ -5,10 +5,26 @@ umask ${UMASK}
|
|||||||
if [ "$1" = "version" ]; then
|
if [ "$1" = "version" ]; then
|
||||||
./openlist version
|
./openlist version
|
||||||
else
|
else
|
||||||
|
# Define the target directory path for openlist service
|
||||||
|
OPENLIST_DIR="/opt/service/start/openlist"
|
||||||
|
if [ ! -d "$OPENLIST_DIR" ]; then
|
||||||
|
cp -r /opt/service/stop/openlist "$OPENLIST_DIR" 2>/dev/null
|
||||||
|
fi
|
||||||
|
# Define the target directory path for aria2 service
|
||||||
|
ARIA2_DIR="/opt/service/start/aria2"
|
||||||
|
|
||||||
if [ "$RUN_ARIA2" = "true" ]; then
|
if [ "$RUN_ARIA2" = "true" ]; then
|
||||||
cp -a /opt/service/stop/aria2 /opt/service/start 2>/dev/null
|
# If aria2 should run and target directory doesn't exist, copy it
|
||||||
|
if [ ! -d "$ARIA2_DIR" ]; then
|
||||||
|
mkdir -p "$ARIA2_DIR"
|
||||||
|
cp -r /opt/service/stop/aria2/* "$ARIA2_DIR" 2>/dev/null
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
# If aria2 should NOT run and target directory exists, remove it
|
||||||
|
if [ -d "$ARIA2_DIR" ]; then
|
||||||
|
rm -rf "$ARIA2_DIR"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chown -R ${PUID}:${PGID} /opt
|
exec runsvdir /opt/service/start
|
||||||
exec su-exec ${PUID}:${PGID} runsvdir /opt/service/start
|
|
||||||
fi
|
fi
|
Reference in New Issue
Block a user