docker – Blame information for rev 24

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