docker – Blame information for rev 16

Subversion Repositories:
Rev:
Rev Author Line No. Line
16 office 1 FROM lsiobase/ubuntu:jammy
2 LABEL maintainer="Wizardry and Steamworks <wizardry.steamworks@outlook.com>"
3  
4 # Env variables
5 ENV \
6 LIBVA_DRIVERS_PATH="/usr/lib/x86_64-linux-gnu/dri" \
7 NVIDIA_DRIVER_CAPABILITIES="compute,video,utility" \
8 NVIDIA_VISIBLE_DEVICES="all"
9  
10 # Install the runtime dependencies
11 # TODO: Remove intel-opencl-icd and replace with suggested build by Jellyfin
12 # https://jellyfin.org/docs/general/administration/hardware-acceleration.html
13 # https://github.com/jellyfin/jellyfin/blob/master/Dockerfile
14 RUN \
15 echo "**** Install build dependencies requirements ****" \
16 && apt-get update \
17 && apt-get install -y \
18 ca-certificates \
19 curl \
20 gnupg \
21 wget \
22 git \
23 subversion \
24 && \
25 echo "**** Install runtime packages ****" \
26 && apt-get install -y \
27 libexpat1=2.4.7-1ubuntu0.3 \
28 libglib2.0-0=2.72.4-0ubuntu2.2 \
29 libgomp1=12.3.0-1ubuntu1~22.04 \
30 libharfbuzz0b=2.7.4-1ubuntu3.1 \
31 libmediainfo0v5=21.09+dfsg-4 \
32 libv4l-0=1.22.1-2build1 \
33 libx11-6=2:1.7.5-1ubuntu0.3 \
34 libxcb1=1.14-3ubuntu3 \
35 libxext6=2:1.3.4-1build1 \
36 libxml2=2.9.13+dfsg-1ubuntu0.4 \
37 && \
38 echo "**** Install all available media acceleration packages ****" \
39 # va-driver-all:
40 # A meta-package for installing all available Video Acceleration API (VAAPI) drivers. Includes packages like:
41 # - i965-va-driver
42 # - intel-media-va-driver
43 # - mesa-va-drivers
44 # - libdrm2
45 # - etc
46 && apt-get install -y \
47 va-driver-all \
48 && \
49 echo "**** Install arch specific packages for $(uname -m) ****" \
50 && sleep 2 \
51 && \
52 if uname -m | grep -q x86; then \
53 echo "**** Add Intel Graphics repository ****" \
54 && wget -qO - https://repositories.intel.com/gpu/intel-graphics.key | gpg --dearmor --output /usr/share/keyrings/intel-graphics.gpg \
55 && echo "deb [arch=amd64,i386 signed-by=/usr/share/keyrings/intel-graphics.gpg] https://repositories.intel.com/gpu/ubuntu jammy client" | tee /etc/apt/sources.list.d/intel-gpu-jammy.list \
56 && \
57 echo "**** Install Intel Media Drivers ****" \
58 && apt-get update \
59 # intel-media-va-driver-non-free:
60 # This is the primary driver for Intel's Video Acceleration API on Linux, which provides support for video encoding and decoding on Intel graphics hardware.
61 # libigdgmm12:
62 # A part of the Intel Graphics Memory Management Library, which is used for managing graphics memory in an efficient and optimized way on Intel GPUs.
63 # libmfx1:
64 # This is a library for Intel Media SDK runtime. It is necessary for applications that use Intel Quick Sync Video technology.
65 # libmfxgen1:
66 # Similar to libmfx1, it's a part of the Intel Media SDK.
67 # libva-drm2 and libva2:
68 # These are additional libraries needed for VAAPI to interface with the Direct Rendering Manager (DRM) and to provide the main API for VAAPI.
69 # libvpl2:
70 # This is the successor to the Media SDK and provides a library for video processing.
71 && apt-get install -y \
72 intel-media-va-driver-non-free \
73 libigdgmm12 \
74 libmfx1 \
75 libmfxgen1 \
76 libva-drm2 \
77 libva2 \
78 libvpl2 \
79 && \
80 echo ; \
81 fi \
82 && \
83 echo "**** Install hardware info tools packages ****" \
84 # hwinfo:
85 # A hardware identification system that provides detailed information about all the hardware components of a computer.
86 # vainfo:
87 # This utility displays information about the VAAPI capabilities of your hardware.
88 && apt-get install -y \
89 hwinfo \
90 vainfo \
91 && \
92 echo "**** Section cleanup ****" \
93 && apt-get clean autoclean -y \
94 && apt-get autoremove -y \
95 && rm -rf \
96 /var/lib/apt/lists/* \
97 /var/tmp/* \
98 /tmp/*
99  
100 # Install commonly used command line tools
101 ARG JELLYFIN_FFMPEG_VERSION="6"
102 ARG NODE_MAJOR="20"
103 RUN \
104 echo "**** Install FFmpeg for $(uname -m) ****" \
105 && sleep 2 \
106 && apt-get update \
107 && \
108 if uname -m | grep -q x86; then \
109 echo "**** Add Jellyfin repository ****" \
110 && wget -qO - https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --output /usr/share/keyrings/jellyfin_team.gpg \
111 && echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin_team.gpg] https://repo.jellyfin.org/ubuntu jammy main" | tee /etc/apt/sources.list.d/jellyfin.list \
112 && \
113 echo "**** Install jellyfin-ffmpeg and linked 3rd party libs ****" \
114 && apt-get update \
115 && apt-get install --no-install-recommends --no-install-suggests -y \
116 openssl \
117 locales \
118 && apt-get install -y \
119 jellyfin-ffmpeg${JELLYFIN_FFMPEG_VERSION} \
120 && ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/local/bin/ffmpeg \
121 && ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /usr/local/bin/ffprobe \
122 && \
123 echo ; \
124 fi \
125 && \
126 if uname -m | grep -q aarch64; then \
127 echo "**** Add Jellyfin repository ****" \
128 && wget -qO - https://repo.jellyfin.org/jellyfin_team.gpg.key | gpg --dearmor --output /usr/share/keyrings/jellyfin_team.gpg \
129 && echo "deb [arch=$( dpkg --print-architecture ) signed-by=/usr/share/keyrings/jellyfin_team.gpg] https://repo.jellyfin.org/ubuntu jammy main" | tee /etc/apt/sources.list.d/jellyfin.list \
130 && \
131 echo "**** Install jellyfin-ffmpeg and linked 3rd party libs ****" \
132 && apt-get update \
133 && apt-get install --no-install-recommends --no-install-suggests -y \
134 locales \
135 libssl-dev \
136 libfontconfig1 \
137 libfreetype6 \
138 libomxil-bellagio0 \
139 libomxil-bellagio-bin \
140 && apt-get install -y \
141 jellyfin-ffmpeg${JELLYFIN_FFMPEG_VERSION} \
142 && ln -s /usr/lib/jellyfin-ffmpeg/ffmpeg /usr/local/bin/ffmpeg \
143 && ln -s /usr/lib/jellyfin-ffmpeg/ffprobe /usr/local/bin/ffprobe \
144 && \
145 echo ; \
146 fi \
147 && \
148 echo "**** Install startup script requirements ****" \
149 && apt-get install -y \
150 jq \
151 nano \
152 sqlite3 \
153 && \
154 echo "**** Add NodeJS repository ****" \
155 && wget -qO - https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor --output /usr/share/keyrings/nodesource.gpg \
156 && echo "deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list \
157 && \
158 echo "**** Install NodeJS for $(uname -m) ****" \
159 && apt-get update \
160 && apt-get install -y \
161 nodejs \
162 && \
163 echo "**** Install exiftool for $(uname -m) ****" \
164 && apt-get install -y \
165 libimage-exiftool-perl \
166 && \
167 echo "**** Section cleanup ****" \
168 && apt-get clean autoclean -y \
169 && apt-get autoremove -y \
170 && rm -rf \
171 /var/lib/apt/lists/* \
172 /var/tmp/* \
173 /tmp/*
174  
175 # Add pip requirements
176 #COPY /requirements.txt /tmp/requirements.txt
177  
178 # Install Unmanic python dependencies.
179 RUN \
180 echo "**** Install Unmanic application dependencies ****" \
181 && sleep 2 \
182 && \
183 echo "**** Update sources ****" \
184 && apt-get update \
185 && \
186 echo "**** Install python ****" \
187 && apt-get install -y --no-install-recommends \
188 grc \
189 gcc \
190 python3 \
191 python3-dev \
192 python3-pip \
193 python3-setuptools \
194 unzip \
195 && \
196 # echo "**** Install pip packages ****" \
197 # && python3 -m pip install --no-cache-dir -r /tmp/requirements.txt \
198 # && \
199 echo "**** Section cleanup ****" \
200 && apt-get clean autoclean -y \
201 && apt-get autoremove -y \
202 && rm -rf \
203 /var/lib/apt/lists/* \
204 /var/tmp/* \
205 /tmp/*
206  
207 # Install pre-built Unmanic wheel
208 # Must first run `python3 ./setup.py bdist_wheel` on host to build package
209 #COPY /dist/ /src/
210 #RUN \
211 # echo "**** Install Unmanic ****" \
212 # && sleep 2 \
213 # && \
214 # echo "**** Install unmanic from pre-built wheel ****" \
215 # && ls -l /src/ \
216 # && python3 -m pip install --no-cache-dir /src/*.whl \
217 # && \
218 # echo "**** Move unmanic executable so we can wrap a bash script around it for developers ****" \
219 # && mv -f /usr/local/bin/unmanic /usr/local/bin/unmanic-service \
220 # && \
221 # echo "**** Make default paths for unmanic library ****" \
222 # && mkdir -p /library
223  
224 RUN echo "**** Checking out Kapsikkum Unmanic sources ****" && \
225 svn co https://svn.grimore.org/kapsikkum-unmanic && \
226 cd kapsikkum-unmanic && \
227 echo "**** Install Kapsikkum Unmanic requirements ****" && \
228 python3 -m pip install -r requirements.txt && \
229 echo "**** Install Kapsikkum Unmanic ****" && \
230 python3 ./setup.py install && \
231 echo "**** Move unmanic executable so we can wrap a bash script around for developers ****" && \
232 mv -f /usr/local/bin/unmanic /usr/local/bin/unmanic-service && \
233 echo "**** Make default paths for unmanic library ****" && \
234 mkdir -p /library
235  
236 # Add local files
237 COPY root /
238  
239 # Unmanic runs on port 8888
240 EXPOSE 8888/tcp