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 \
|
2025-10-14 17:47:06 +08:00
|
|
|
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 \
|
|
|
|
|
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 \
|
|
|
|
|
&& \
|
2025-10-20 10:30:27 +08:00
|
|
|
pip3 install --no-cache-dir onvif_zeep && \
|
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-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-13 13:55:15 +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 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/
|
2025-10-15 14:34:53 +08:00
|
|
|
USER dev
|
2025-10-17 17:20:45 +08:00
|
|
|
RUN pip install --no-cache-dir --user -i https://mirrors.aliyun.com/pypi/simple/ piper-tts
|
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"]
|