bonus-edge-proxy/docker/Dockerfile

96 lines
3.0 KiB
Docker
Raw Normal View History

2025-10-13 13:55:15 +08:00
FROM arm64v8/ubuntu:22.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y --no-install-recommends \
# 基础工具
sudo \
build-essential \
cmake \
git \
gdb \
vim \
2025-10-20 09:15:55 +08:00
unzip \
pkg-config \
2025-10-20 10:39:14 +08:00
# PPA 管理工具
2025-10-20 09:15:55 +08:00
software-properties-common \
2025-10-20 10:39:14 +08:00
gpg-agent \
2025-10-20 09:15:55 +08:00
&& \
2025-10-20 10:39:14 +08:00
add-apt-repository -y ppa:jjriek/panfork-mesa && \
add-apt-repository -y ppa:jjriek/rockchip && \
add-apt-repository -y ppa:jjriek/rockchip-multimedia && \
2025-10-20 09:15:55 +08:00
apt-get update && \
apt-get install -y --no-install-recommends \
2025-10-15 14:27:21 +08:00
espeak-ng-data \
libespeak1 \
python3 \
python3-pip \
2025-10-13 13:55:15 +08:00
libssl-dev \
libspdlog-dev \
libsqlite3-dev \
2025-10-20 09:15:55 +08:00
libboost-all-dev \
2025-10-20 10:39:14 +08:00
librockchip-mpp-dev \
librga-dev \
gstreamer1.0-rockchip \
2025-10-20 09:15:55 +08:00
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
2025-10-21 18:16:57 +08:00
alsa-utils \
libasound2-plugins \
gstreamer1.0-alsa \
2025-10-20 09:15:55 +08:00
gstreamer1.0-plugins-base \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
gstreamer1.0-tools \
gstreamer1.0-x \
gstreamer1.0-alsa \
gstreamer1.0-pulseaudio \
gstreamer1.0-rtsp \
2025-10-20 17:45:43 +08:00
libopencv-dev \
2025-10-21 09:22:18 +08:00
nmap \
2025-10-20 09:15:55 +08:00
&& \
2025-10-13 13:55:15 +08:00
groupadd -r developers && \
useradd -ms /bin/bash -g developers -G sudo dev && \
groupadd -g 20 dialout || true && \
2025-10-17 17:20:45 +08:00
groupadd -g 44 video || true && \
groupadd -g 110 render || true && \
2025-10-21 18:16:57 +08:00
groupadd -g 29 render || true && \
2025-10-13 13:55:15 +08:00
usermod -a -G dialout dev && \
2025-10-17 17:20:45 +08:00
usermod -a -G video dev && \
usermod -a -G render dev && \
2025-10-21 18:16:57 +08:00
usermod -a -G audio dev && \
2025-10-21 09:22:18 +08:00
echo "dev ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/dev-nopasswd
2025-10-20 10:39:14 +08:00
2025-10-13 13:55:15 +08:00
RUN echo "umask 0002" > /etc/profile.d/99-shared-umask.sh && \
chmod +x /etc/profile.d/99-shared-umask.sh
COPY . /tmp/build-context
RUN cd /tmp/build-context/external/paho.mqtt.c && \
2025-10-20 10:39:14 +08:00
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
2025-10-13 13:55:15 +08:00
cmake --build build --target install && \
cd /tmp/build-context/external/paho.mqtt.cpp && \
2025-10-20 10:39:14 +08:00
cmake -Bbuild -H. -DPAHO_WITH_SSL=ON -DPAHO_BUILD_SAMPLES=OFF -DPAHO_BUILD_DOCUMENTATION=OFF && \
2025-10-13 13:55:15 +08:00
cmake --build build --target install && \
2025-10-20 09:15:55 +08:00
rm -rf /tmp/build-context
2025-10-20 14:18:37 +08:00
2025-10-20 16:30:40 +08:00
COPY rknn_sdk/librknn_api/include/rknn_api.h /usr/local/include/
COPY rknn_sdk/rknn_server/aarch64/usr/bin/rknn_server /usr/bin/rknn_server
2025-10-20 14:18:37 +08:00
COPY rknn_sdk/librknn_api/aarch64/librknnrt.so /usr/lib/librknnrt.so
COPY rknn_sdk/librknn_api/aarch64/librknn_api.so /usr/lib/librknn_api.so
2025-10-20 16:30:40 +08:00
COPY rknn_sdk/whl/*.whl /tmp/rknn_wheels/
RUN pip3 install /tmp/rknn_wheels/*.whl && \
rm -rf /tmp/rknn_wheels
RUN chmod +x /usr/bin/rknn_server
2025-10-20 14:18:37 +08:00
RUN ldconfig
2025-10-20 10:39:14 +08:00
RUN rm -rf /var/lib/apt/lists/*
2025-10-20 09:15:55 +08:00
COPY piper_models/ /app/piper_models/
USER dev
2025-10-22 15:31:10 +08:00
RUN pip install --no-cache-dir --user -i https://mirrors.aliyun.com/pypi/simple/ \
piper-tts \
onvif-zeep \
python-nmap \
psutil \
paramiko
2025-10-15 14:27:21 +08:00
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
2025-10-16 11:06:44 +08:00
USER dev
2025-10-20 09:15:55 +08:00
CMD ["/bin/bash"]