CI:镜像补装 netbase 提供 /etc/protocols(修复 MOOSDB getprotobyname 失败导致启动崩溃)
build-test-deploy / ci (push) Successful in 7m59s

This commit is contained in:
zjk
2026-08-14 16:26:07 +08:00
parent cb0f556d3b
commit 83d6d4dbaa
2 changed files with 10 additions and 3 deletions
+9 -2
View File
@@ -42,9 +42,7 @@ RUN --mount=type=secret,id=gitea_token \
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
# Build & install MOOS-IvP (bundles MOOS core + essentials + geodesy + ivp) # Build & install MOOS-IvP (bundles MOOS core + essentials + geodesy + ivp)
# build-moos.sh -m : skip GUI tools (no FLTK needed) # build-moos.sh -m : skip GUI tools (no FLTK needed)
# --with-proj=off : skip PROJ (its CPM fetch pulls from github)
# build-ivp.sh -n : skip GUI apps (no FLTK needed) # build-ivp.sh -n : skip GUI apps (no FLTK needed)
# -u : skip UTM (depends on PROJ-backed geodesy)
# Installs libMOOS + MOOSConfig.cmake + ivp headers/libs to /usr/local, # Installs libMOOS + MOOSConfig.cmake + ivp headers/libs to /usr/local,
# matching the layout expected by the project's top-level CMakeLists.txt. # matching the layout expected by the project's top-level CMakeLists.txt.
#----------------------------------------------------------------------- #-----------------------------------------------------------------------
@@ -56,4 +54,13 @@ RUN ./build-moos.sh -m -j"$(nproc)" && \
make -C build/ivp install && \ make -C build/ivp install && \
ldconfig ldconfig
#-----------------------------------------------------------------------
# netbase provides /etc/protocols, which MOOS needs at runtime
# (getprotobyname("tcp")). The base image lacks it, so MOOSDB would throw
# XPCException "Could Not Get Protocol By Name" at startup without it.
# Kept as a final layer so the (expensive) MOOS-IvP build stays cached.
#-----------------------------------------------------------------------
RUN apt-get update && apt-get install -y --no-install-recommends netbase \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /src WORKDIR /src
+1 -1
View File
@@ -69,7 +69,7 @@ getent protocols tcp >/dev/null 2>&1 && echo "getprotobyname(tcp) OK" || echo "g
getent hosts localhost >/dev/null 2>&1 && echo "gethostbyname(localhost) OK" || echo "gethostbyname(localhost) FAILED" getent hosts localhost >/dev/null 2>&1 && echo "gethostbyname(localhost) OK" || echo "gethostbyname(localhost) FAILED"
echo "ulimit -n: $(ulimit -n)" echo "ulimit -n: $(ulimit -n)"
"${MOOSDB}" -s --moos_suicide_disable --moos_no_colour "${MISSION_FILE}" > /tmp/moosdb_smoke.log 2>&1 & "${MOOSDB}" --moos_suicide_disable --moos_no_colour "${MISSION_FILE}" > /tmp/moosdb_smoke.log 2>&1 &
MOOSDB_PID=$! MOOSDB_PID=$!
sleep 3 sleep 3