Files
H100PowerManger/ci/Dockerfile
T
2026-08-14 13:28:56 +08:00

53 lines
2.3 KiB
Docker
Executable File

#=======================================================================
# FILE: ci/Dockerfile
# DESC: aarch64 (RK3588 / Ubuntu 20.04) build & test environment.
# - Ubuntu 20.04 arm64 base (matches the target board)
# - MOOS-IvP built from source and installed to /usr/local
# - jsoncpp (the only extra dep used by pPowerManger)
# NOTE: github.com is unreachable from the CN runner, so MOOS-IvP
# is cloned via a github proxy with fallbacks.
#=======================================================================
FROM arm64v8/ubuntu:20.04
ENV DEBIAN_FRONTEND=noninteractive
#-----------------------------------------------------------------------
# Use Aliyun mirror for apt (faster from CN) then install toolchain
#-----------------------------------------------------------------------
RUN sed -i \
-e 's|http://ports.ubuntu.com/ubuntu-ports|http://mirrors.aliyun.com/ubuntu-ports|g' \
-e 's|http://archive.ubuntu.com/ubuntu|http://mirrors.aliyun.com/ubuntu|g' \
/etc/apt/sources.list && \
apt-get update && apt-get install -y --no-install-recommends \
build-essential \
cmake \
git \
ca-certificates \
libjsoncpp-dev \
rsync \
&& rm -rf /var/lib/apt/lists/*
#-----------------------------------------------------------------------
# Build & install MOOS-IvP (bundles MOOS core + essentials + geodesy + ivp)
# build-moos.sh -m : skip GUI tools (no FLTK needed)
# build-ivp.sh -n : skip GUI apps (no FLTK needed)
# Installs libMOOS + MOOSConfig.cmake + ivp headers/libs to /usr/local,
# matching the layout expected by the project's top-level CMakeLists.txt.
#-----------------------------------------------------------------------
WORKDIR /opt
RUN git clone --depth 1 https://gh-proxy.com/https://github.com/moos-ivp/moos-ivp.git /opt/moos-ivp \
|| git clone --depth 1 https://ghfast.top/https://github.com/moos-ivp/moos-ivp.git /opt/moos-ivp \
|| git clone --depth 1 https://github.com/moos-ivp/moos-ivp.git /opt/moos-ivp
RUN cd /opt/moos-ivp && \
./build-moos.sh -m -j"$(nproc)" && \
make -C build/MOOS/MOOSCore install && \
make -C build/MOOS/MOOSGeodesy install && \
./build-ivp.sh -n -j"$(nproc)" && \
make -C build/ivp install && \
ldconfig
WORKDIR /src