78 lines
2.4 KiB
Docker
78 lines
2.4 KiB
Docker
ARG TARGETARCH
|
|
|
|
FROM ubuntu:22.04 AS ffmpeg_amd64
|
|
RUN echo "Using static-ffmpeg for amd64"
|
|
COPY --from=mwader/static-ffmpeg:8.0 /ffmpeg /usr/local/bin/
|
|
COPY --from=mwader/static-ffmpeg:8.0 /ffprobe /usr/local/bin/
|
|
|
|
FROM ubuntu:22.04 AS ffmpeg_arm64
|
|
RUN echo "Using static-ffmpeg for arm64"
|
|
COPY --from=mwader/static-ffmpeg:8.0 /ffmpeg /usr/local/bin/
|
|
COPY --from=mwader/static-ffmpeg:8.0 /ffprobe /usr/local/bin/
|
|
|
|
FROM ubuntu:22.04 AS ffmpeg_arm
|
|
# FFmpeg will be installed later via Ubuntu packages (apt-get install ffmpeg) for arm architecture.
|
|
RUN echo "Using ffmpeg for arm"
|
|
|
|
FROM ubuntu:22.04 AS ffmpeg_386
|
|
# FFmpeg will be installed later via Ubuntu packages (apt-get install ffmpeg) for 386 architecture.
|
|
RUN echo "Using ffmpeg for 386"
|
|
|
|
FROM ffmpeg_${TARGETARCH}
|
|
ARG TARGETARCH
|
|
ARG tag
|
|
|
|
ENV IS_DOCKER=true
|
|
ENV WORKDIR="/srv/bililive"
|
|
ENV OUTPUT_DIR="/srv/bililive" \
|
|
CONF_DIR="/etc/bililive-go" \
|
|
PORT=8080
|
|
|
|
ENV PUID=0 PGID=0 UMASK=022
|
|
|
|
RUN mkdir -p $OUTPUT_DIR && \
|
|
mkdir -p $CONF_DIR && \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
|
|
curl \
|
|
gosu \
|
|
tzdata \
|
|
ca-certificates && \
|
|
sh -c '\
|
|
if [ "$TARGETARCH" = "amd64" ] || [ "$TARGETARCH" = "arm64" ]; then \
|
|
echo "skip apt ffmpeg for $TARGETARCH"; \
|
|
else \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends ffmpeg; \
|
|
fi' && \
|
|
cp -r -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
|
|
apt-get clean && rm -rf /var/lib/apt/lists/*
|
|
|
|
RUN set -x; \
|
|
case $(arch) in \
|
|
aarch64) go_arch=arm64 ;; \
|
|
arm*) go_arch=arm ;; \
|
|
i386|i686) go_arch=386 ;; \
|
|
x86_64) go_arch=amd64 ;; \
|
|
*) echo "Unsupported arch: $(arch)"; exit 1 ;; \
|
|
esac; \
|
|
echo "Downloading release ${tag} for arch ${go_arch}"; \
|
|
cd /tmp && curl -sSLO "https://github.com/bililive-go/bililive-go/releases/download/${tag}/bililive-linux-${go_arch}.tar.gz" && \
|
|
tar zxvf "bililive-linux-${go_arch}.tar.gz" "bililive-linux-${go_arch}" && \
|
|
chmod +x "bililive-linux-${go_arch}" && \
|
|
mv "./bililive-linux-${go_arch}" /usr/bin/bililive-go && \
|
|
rm "./bililive-linux-${go_arch}.tar.gz"; \
|
|
if [ "${tag}" != "$(/usr/bin/bililive-go --version | tr -d '\n')" ]; then exit 1; fi
|
|
|
|
COPY config.docker.yml $CONF_DIR/config.yml
|
|
|
|
COPY entrypoint.sh /entrypoint.sh
|
|
RUN chmod +x /entrypoint.sh
|
|
|
|
VOLUME $OUTPUT_DIR
|
|
|
|
EXPOSE $PORT
|
|
|
|
WORKDIR ${WORKDIR}
|
|
ENTRYPOINT [ "sh" ]
|
|
CMD [ "/entrypoint.sh" ]
|