docker – Blame information for rev 60

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