Fixed fedora rpm build unexpected dependency on liblttng-ust. Fixed the docker builds and added manifest generation.

This commit is contained in:
Erwin de Haan 2019-01-12 03:04:36 +01:00
parent 74507099ad
commit 4b00b0cc87
7 changed files with 46 additions and 10 deletions

View File

@ -46,13 +46,13 @@ build_jellyfin_docker()
DOCKERFILE=${2-$DEFAULT_DOCKERFILE}
IMAGE_TAG=${3-$DEFAULT_IMAGE_TAG}
echo -e "${CYAN}Building jellyfin docker image in '${ROOT}' with Dockerfile ${CONFIG} and tag '${IMAGE_TAG}'.${NC}"
docker build -t ${IMAGE_TAG} -f ${DOCKERFILE} ${ROOT}
echo -e "${CYAN}Building jellyfin docker image in '${BUILD_CONTEXT}' with Dockerfile '${DOCKERFILE}' and tag '${IMAGE_TAG}'.${NC}"
docker build -t ${IMAGE_TAG} -f ${DOCKERFILE} ${BUILD_CONTEXT}
EXIT_CODE=$?
if [ $EXIT_CODE -eq 0 ]; then
echo -e "${GREEN}[DONE] Building jellyfin docker image in '${ROOT}' with Dockerfile ${CONFIG} and tag '${IMAGE_TAG}' complete.${NC}"
echo -e "${GREEN}[DONE] Building jellyfin docker image in '${BUILD_CONTEXT}' with Dockerfile '${DOCKERFILE}' and tag '${IMAGE_TAG}' complete.${NC}"
else
echo -e "${RED}[FAIL] Building jellyfin docker image in '${ROOT}' with Dockerfile ${CONFIG} and tag '${IMAGE_TAG}' FAILED.${NC}"
echo -e "${RED}[FAIL] Building jellyfin docker image in '${BUILD_CONTEXT}' with Dockerfile '${DOCKERFILE}' and tag '${IMAGE_TAG}' FAILED.${NC}"
fi
)

View File

@ -23,6 +23,6 @@ COPY --from=builder /jellyfin /jellyfin
COPY --from=ffmpeg /ffmpeg-bin/* /usr/bin/
EXPOSE 8096
VOLUME /config /media
RUN apt update \
&& apt install -y libfontconfig1 --no-install-recommends # needed for Skia
RUN apt-get update \
&& apt-get install -y libfontconfig1 --no-install-recommends # needed for Skia
ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config

View File

@ -8,10 +8,10 @@ RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
&& dotnet clean \
&& dotnet publish --configuration release --output /jellyfin Jellyfin.Server
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm32v7
COPY --from=builder /jellyfin /jellyfin
EXPOSE 8096
RUN apt update \
&& apt install -y ffmpeg
RUN apt-get update \
&& apt-get install -y ffmpeg
VOLUME /config /media
ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config

View File

@ -0,0 +1,17 @@
ARG DOTNET_VERSION=3.0
FROM microsoft/dotnet:${DOTNET_VERSION}-sdk as builder
WORKDIR /repo
COPY . .
RUN export DOTNET_CLI_TELEMETRY_OPTOUT=1 \
&& find . -type f -exec sed -i 's/netcoreapp2.1/netcoreapp3.0/g' {} \; \
&& dotnet clean \
&& dotnet publish --configuration release --output /jellyfin Jellyfin.Server
FROM microsoft/dotnet:${DOTNET_VERSION}-runtime-stretch-slim-arm64v8
COPY --from=builder /jellyfin /jellyfin
EXPOSE 8096
RUN apt-get update \
&& apt-get install -y ffmpeg
VOLUME /config /media
ENTRYPOINT dotnet /jellyfin/jellyfin.dll -programdata /config

View File

@ -4,4 +4,10 @@ source ../common.build.sh
VERSION=`get_version ../..`
build_jellyfin_docker ../.. Dockerfile jellyfin:${VERSION}
build_jellyfin_docker ../.. Dockerfile.amd64 jellyfin:amd64-${VERSION}
build_jellyfin_docker ../.. Dockerfile.arm64v8 jellyfin:arm64v8-${VERSION} arm64v8
build_jellyfin_docker ../.. Dockerfile.arm32v7 jellyfin:arm32v7-${VERSION} arm32v7

12
deployment/docker/package.sh Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env bash
source ../common.build.sh
VERSION=`get_version ../..`
docker manifest create jellyfin:${VERSION} jellyfin:amd64-${VERSION} jellyfin:arm32v7-${VERSION} jellyfin:arm64v8-${VERSION}
docker manifest annotate jellyfin:amd64-${VERSION} --os linux --arch amd64
docker manifest annotate jellyfin:arm32v7-${VERSION} --os linux --arch arm --variant armv7
docker manifest annotate jellyfin:arm64v8-${VERSION} --os linux --arch arm64 --variant armv8
#TODO publish.sh - docker manifest push jellyfin:${VERSION}

View File

@ -5,6 +5,7 @@
%global taglib_commit ee5ab21742b71fd1b87ee24895582327e9e04776
%global taglib_shortcommit %(c=%{taglib_commit}; echo ${c:0:7})
AutoReq: no
Name: jellyfin
Version: 10.0.1
Release: 1%{?dist}