mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-12 01:00:29 +08:00
Merge upstream PiKVM master branch updates: - Bump version from 4.93 to 4.94 - HID: improved jiggler pattern for better compatibility - Streamer: major refactoring for improved performance and maintainability - Prometheus: tidying GPIO channel name formatting - Web: added __gpio-label class for custom styling - HID: customizable /api/hid/print delay configuration - ATX: independent power/reset regions for better control - OLED: added --fill option for display testing - Web: improved keyboard handling in modal dialogs - Web: enhanced login error messages - Switch: added heartbeat functionality - Web: mouse touch code simplification and refactoring - Configs: use systemd-networkd-wait-online --any by default - PKGBUILD: use cp -r to install systemd units properly - Various bug fixes and performance improvements
122 lines
2.7 KiB
Docker
122 lines
2.7 KiB
Docker
FROM archlinux/archlinux:base
|
|
|
|
RUN mkdir -p /etc/pacman.d/hooks \
|
|
&& ln -s /dev/null /etc/pacman.d/hooks/30-systemd-tmpfiles.hook
|
|
|
|
RUN echo 'Server = https://mirrors.tuna.tsinghua.edu.cn/archlinux/$repo/os/$arch' > /etc/pacman.d/mirrorlist \
|
|
&& pacman-key --init \
|
|
&& pacman-key --populate archlinux
|
|
|
|
RUN \
|
|
--mount=type=cache,id=kvmd-pacman-pkg,target=/var/cache/pacman/pkg \
|
|
--mount=type=cache,id=kvmd-pacman-db,target=/var/lib/pacman/sync \
|
|
PACMAN="pacman --noconfirm --ask=4 --needed" \
|
|
&& $PACMAN -Syy \
|
|
archlinux-keyring \
|
|
&& $PACMAN -S \
|
|
glibc \
|
|
pacman \
|
|
openssl \
|
|
openssl-1.1 \
|
|
&& pacman-db-upgrade \
|
|
&& $PACMAN -Syu \
|
|
p11-kit \
|
|
ca-certificates \
|
|
ca-certificates-mozilla \
|
|
ca-certificates-utils \
|
|
&& $PACMAN -Syu \
|
|
base-devel \
|
|
autoconf-archive \
|
|
help2man \
|
|
m4 \
|
|
vim \
|
|
git \
|
|
libjpeg \
|
|
libevent \
|
|
libutil-linux \
|
|
libbsd \
|
|
python \
|
|
python-pip \
|
|
python-build \
|
|
python-wheel \
|
|
python-setuptools \
|
|
python-tox \
|
|
python-mako \
|
|
python-yaml \
|
|
python-aiohttp \
|
|
python-aiofiles \
|
|
python-async-lru \
|
|
python-passlib \
|
|
python-bcrypt \
|
|
python-pyotp \
|
|
python-qrcode \
|
|
python-pyserial \
|
|
python-pyusb \
|
|
python-pyudev \
|
|
python-evdev \
|
|
python-setproctitle \
|
|
python-psutil \
|
|
python-netifaces \
|
|
python-systemd \
|
|
python-dbus \
|
|
python-dbus-next \
|
|
python-pygments \
|
|
python-pam \
|
|
python-pillow \
|
|
python-xlib \
|
|
python-mako \
|
|
libxkbcommon \
|
|
python-hidapi \
|
|
python-ldap \
|
|
python-zstandard \
|
|
libgpiod \
|
|
freetype2 \
|
|
nginx-mainline \
|
|
tesseract \
|
|
tesseract-data-eng \
|
|
tesseract-data-rus \
|
|
ipmitool \
|
|
socat \
|
|
eslint \
|
|
npm \
|
|
shellcheck \
|
|
&& :
|
|
|
|
COPY testenv/requirements.txt requirements.txt
|
|
RUN pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple \
|
|
&& pip install --break-system-packages -r requirements.txt \
|
|
&& pip cache purge
|
|
|
|
# https://stackoverflow.com/questions/57534295
|
|
WORKDIR /root
|
|
RUN npm config set registry https://registry.npmmirror.com \
|
|
&& npm install htmlhint -g \
|
|
&& npm install pug \
|
|
&& npm install pug-cli -g \
|
|
&& npm install @babel/eslint-parser -g \
|
|
&& npm cache clean -f
|
|
WORKDIR /
|
|
|
|
ARG USTREAMER_MIN_VERSION
|
|
ENV USTREAMER_MIN_VERSION $USTREAMER_MIN_VERSION
|
|
RUN echo $USTREAMER_MIN_VERSION
|
|
RUN \
|
|
--mount=type=tmpfs,target=/tmp \
|
|
cd /tmp \
|
|
&& git clone --depth=1 https://github.com/pikvm/ustreamer \
|
|
&& cd ustreamer \
|
|
&& make WITH_PYTHON=1 PREFIX=/usr DESTDIR=/ install
|
|
|
|
RUN mkdir -p \
|
|
/etc/kvmd/{nginx,vnc} \
|
|
/var/lib/kvmd/msd \
|
|
/var/lib/kvmd/pst/data \
|
|
/opt/vc/bin
|
|
|
|
COPY testenv/fakes/vcgencmd /usr/bin/
|
|
COPY testenv/fakes/sys /fake_sysfs/sys
|
|
COPY testenv/fakes/proc /fake_procfs/proc
|
|
COPY testenv/fakes/etc /fake_etc/etc
|
|
|
|
CMD ["/bin/bash"]
|