Skip to content

Commit

Permalink
Add Noble Containers
Browse files Browse the repository at this point in the history
* Added noble docker images

* updated readme

* Updated Makefile & Workflow
  • Loading branch information
alexcekay authored Feb 12, 2025
1 parent 5483ce7 commit 72126af
Show file tree
Hide file tree
Showing 5 changed files with 222 additions and 4 deletions.
45 changes: 45 additions & 0 deletions .github/workflows/docker_builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,28 @@ jobs:
tag_names: true
workdir: docker

px4-dev-base-noble:
name: "Ubuntu Noble Base"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build container
if: github.event_name == 'pull_request'
run: |
cd docker
make px4-dev-base-noble
- name: Build & Publish container
if: github.event_name == 'push' && (contains(github.ref, '/heads/master') || contains(github.ref, '/tags/'))
uses: julianoes/Publish-Docker-Github-Action@master
with:
name: px4io/px4-dev-base-noble
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
dockerfile: Dockerfile_base-noble
cache: false
tag_names: true
workdir: docker

px4-dev-simulation-jammy:
name: "Ubuntu Jammy Simulation"
runs-on: ubuntu-latest
Expand Down Expand Up @@ -236,6 +258,29 @@ jobs:
tag_names: true
workdir: docker

px4-dev-nuttx-nobble:
name: "NuttX in Ubuntu Noble"
runs-on: ubuntu-latest
needs: px4-dev-base-noble
steps:
- uses: actions/checkout@v3
- name: Build container
if: github.event_name == 'pull_request'
run: |
cd docker
make px4-dev-nuttx-noble
- name: Build & Publish container
if: github.event_name == 'push' && (contains(github.ref, '/heads/master') || contains(github.ref, '/tags/'))
uses: julianoes/Publish-Docker-Github-Action@master
with:
name: px4io/px4-dev-nuttx-noble
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
dockerfile: Dockerfile_nuttx-noble
cache: false
tag_names: true
workdir: docker

px4-dev-raspi:
name: "Ubuntu Raspberry Pi"
runs-on: ubuntu-latest
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ License: according to [LICENSE](https://github.com/PX4/Firmware/blob/master/LICE
- [px4io/px4-dev-ros2-galactic](https://hub.docker.com/r/px4io/px4-dev-ros2-galactic) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-ros2-galactic.svg)](http://microbadger.com/images/px4io/px4-dev-ros2-galactic) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-ros2-galactic.svg)](https://hub.docker.com/r/px4io/px4-dev-ros2-galactic)
- [px4io/px4-dev-base-jammy](https://hub.docker.com/r/px4io/px4-dev-base-jammy) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-base-jammy.svg)](http://microbadger.com/images/px4io/px4-dev-base-jammy) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-base-jammy.svg)](https://hub.docker.com/r/px4io/px4-dev-base-jammy)
- [px4io/px4-dev-nuttx-jammy](https://hub.docker.com/r/px4io/px4-dev-nuttx-jammy) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-nuttx-jammy.svg)](http://microbadger.com/images/px4io/px4-dev-nuttx-jammy) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-nuttx-jammy.svg)](https://hub.docker.com/r/px4io/px4-dev-nuttx-jammy)
- [px4io/px4-dev-base-noble](https://hub.docker.com/r/px4io/px4-dev-base-noble) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-base-noble.svg)](http://microbadger.com/images/px4io/px4-dev-base-noble) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-base-noble.svg)](https://hub.docker.com/r/px4io/px4-dev-base-noble)
- [px4io/px4-dev-nuttx-noble](https://hub.docker.com/r/px4io/px4-dev-nuttx-noble) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-nuttx-noble.svg)](http://microbadger.com/images/px4io/px4-dev-nuttx-noble) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-nuttx-noble.svg)](https://hub.docker.com/r/px4io/px4-dev-nuttx-noble)
- [px4io/px4-dev-armhf](https://hub.docker.com/r/px4io/px4-dev-armhf) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-armhf.svg)](http://microbadger.com/images/px4io/px4-dev-armhf) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-armhf.svg)](https://hub.docker.com/r/px4io/px4-dev-armhf)
- [px4io/px4-dev-aarch64](https://hub.docker.com/r/px4io/px4-dev-aarch64) [![](https://images.microbadger.com/badges/image/px4io/px4-dev-aarch64.svg)](http://microbadger.com/images/px4io/px4-dev-aarch64) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-dev-aarch64.svg)](https://hub.docker.com/r/px4io/px4-dev-aarch64)
- [px4io/px4-docs](https://hub.docker.com/r/px4io/px4-docs) [![](https://images.microbadger.com/badges/image/px4io/px4-docs.svg)](http://microbadger.com/images/px4io/px4-docs) [![Docker Pulls](https://img.shields.io/docker/pulls/px4io/px4-docs.svg)](https://hub.docker.com/r/px4io/px4-docs)
Expand Down
114 changes: 114 additions & 0 deletions docker/Dockerfile_base-noble
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
#
# PX4 base development environment
#

FROM ubuntu:24.04
LABEL maintainer="Alexander Lerach <[email protected]>"

ENV DEBIAN_FRONTEND noninteractive
ENV LANG C.UTF-8
ENV LC_ALL C.UTF-8

RUN apt-get update && apt-get -y --quiet --no-install-recommends install \
ant \
binutils-dev \
ca-certificates \
ccache \
cmake \
cppcheck \
curl \
dirmngr \
doxygen \
g++-multilib \
gcc-multilib \
gdb \
gettext \
git \
gnupg \
gosu \
lcov \
libelf-dev \
libexpat-dev \
libvecmath-java \
libfreetype6-dev \
libgmp-dev \
libgtest-dev \
libisl-dev \
libmpc-dev \
libmpfr-dev \
libpng-dev \
libssl-dev \
lsb-release \
make \
ninja-build \
openssh-client \
openjdk-11-jre \
openjdk-11-jdk \
python3 \
python3-dev \
python3-pip \
python3-venv \
rsync \
screen \
shellcheck \
tzdata \
texinfo \
u-boot-tools \
util-linux \
unzip \
valgrind \
wget \
xsltproc \
zip \
&& apt-get -y autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*

# Set java 11 as default
RUN update-alternatives --set java $(update-alternatives --list java | grep "java-11")

# gtest
RUN cd /usr/src/gtest \
&& mkdir build && cd build \
&& cmake .. && make -j$(nproc) \
&& find . -name \*.a -exec cp {} /usr/lib \; \
&& cd .. && rm -rf build

# Python 3 dependencies installed by pip
RUN python3 -m pip install --break-system-packages argparse argcomplete coverage cerberus empy==3.3.4 jinja2 kconfiglib \
matplotlib>=3.0.* numpy nunavut>=1.1.0 packaging pkgconfig pyros-genmsg pyulog \
pyyaml requests serial six toml psutil pyulog wheel jsonschema pynacl lxml

# manual ccache setup
RUN ln -s /usr/bin/ccache /usr/lib/ccache/cc \
&& ln -s /usr/bin/ccache /usr/lib/ccache/c++

# astyle v3.1
RUN wget -q https://downloads.sourceforge.net/project/astyle/astyle/astyle%203.1/astyle_3.1_linux.tar.gz -O /tmp/astyle.tar.gz \
&& cd /tmp && tar zxf astyle.tar.gz && cd astyle/src \
&& make -f ../build/gcc/Makefile -j$(nproc) && cp bin/astyle /usr/local/bin \
&& rm -rf /tmp/*

# create user with id 1001 (jenkins docker workflow default)
RUN useradd --shell /bin/bash -u 1001 -c "" -m user && usermod -a -G dialout user

# setup virtual X server
RUN mkdir /tmp/.X11-unix && \
chmod 1777 /tmp/.X11-unix && \
chown -R root:root /tmp/.X11-unix
ENV DISPLAY :99

ENV CCACHE_UMASK=000
ENV PATH="/usr/lib/ccache:$PATH"
ENV TERM=xterm
ENV TZ=UTC

# SITL UDP PORTS
EXPOSE 14556/udp
EXPOSE 14557/udp

# create and start as LOCAL_USER_ID
COPY scripts/entrypoint.sh /usr/local/bin/entrypoint.sh
ENTRYPOINT ["/usr/local/bin/entrypoint.sh"]

CMD ["/bin/bash"]
51 changes: 51 additions & 0 deletions docker/Dockerfile_nuttx-noble
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#
# PX4 NuttX development environment in Ubuntu 24.04 Noble
#

FROM px4io/px4-dev-base-noble:2025-02-10
LABEL maintainer="Alexander Lerach <[email protected]>"

RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --no-install-recommends install \
autoconf \
automake \
bison \
build-essential \
bzip2 \
file \
flex \
genromfs \
gperf \
libncurses-dev \
libncurses6 \
libncursesw6 \
libtool \
pkg-config \
uncrustify \
vim-common \
&& apt-get -y autoremove \
&& apt-get clean autoclean \
&& rm -rf /var/lib/apt/lists/{apt,dpkg,cache,log} /tmp/* /var/tmp/*

# GNU Arm Embedded Toolchain: 13.3.Rel1 Released: July 04, 2024
RUN mkdir -p /opt/gcc && cd /opt/gcc \
&& wget -qO- "https://developer.arm.com/-/media/Files/downloads/gnu/13.3.rel1/binrel/arm-gnu-toolchain-13.3.rel1-x86_64-arm-none-eabi.tar.xz" | tar -Jx --strip 1 \
&& rm -rf /opt/gcc/share/doc

ENV PATH="$PATH:/opt/gcc/bin"

# manual ccache setup for arm-none-eabi-g++/arm-none-eabi-gcc
RUN ln -s /usr/bin/ccache /usr/lib/ccache/arm-none-eabi-g++ \
&& ln -s /usr/bin/ccache /usr/lib/ccache/arm-none-eabi-gcc

# nuttx tools
RUN git clone --depth 1 https://bitbucket.org/nuttx/tools.git /tmp/tools \
&& cd /tmp/tools/kconfig-frontends \
&& autoreconf -f -i \
&& ./configure --enable-mconf --disable-nconf --disable-gconf --disable-qconf -prefix=/usr && make -j$(nproc) && make install \
&& rm -rf /tmp/*

# bloaty - https://github.com/google/bloaty
RUN git clone --recursive https://github.com/google/bloaty.git /tmp/bloaty \
&& cd /tmp/bloaty && cmake -GNinja . && ninja -j $(nproc) bloaty && cp bloaty /usr/local/bin/ \
&& rm -rf /tmp/*
14 changes: 10 additions & 4 deletions docker/Makefile
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
.PHONY: px4-dev-armhf, px4-dev-base-archlinux, px4-dev-base-bionic, \
px4-dev-base-focal, px4-dev-base-jammy, px4-dev-clang, px4-dev-nuttx-bionic, \
px4-dev-nuttx-focal, px4-dev-nuttx-jammy, px4-dev-nuttx-clang, px4-dev-raspi, \
px4-dev-base-focal, px4-dev-base-jammy, px4-dev-base-noble, px4-dev-clang, px4-dev-nuttx-bionic, \
px4-dev-nuttx-focal, px4-dev-nuttx-jammy, px4-dev-nuttx-noble, px4-dev-nuttx-clang, px4-dev-raspi, \
px4-dev-ros-melodic, px4-dev-ros-noetic, px4-dev-ros2-dashing, \
px4-dev-ros2-eloquent, px4-dev-ros2-foxy, px4-dev-ros2-galactic, \
px4-dev-ros2-rolling, px4-dev-simulation-bionic, px4-dev-simulation-focal, \
px4-docs

all: px4-dev-armhf, px4-dev-base-archlinux, px4-dev-base-bionic, \
px4-dev-base-focal, px4-dev-base-jammy, px4-dev-clang, px4-dev-nuttx-bionic, \
px4-dev-nuttx-focal, px4-dev-nuttx-jammy, px4-dev-nuttx-clang, px4-dev-raspi, \
px4-dev-base-focal, px4-dev-base-jammy, px4-dev-base-noble, px4-dev-clang, px4-dev-nuttx-bionic, \
px4-dev-nuttx-focal, px4-dev-nuttx-jammy, px4-dev-nuttx-noble, px4-dev-nuttx-clang, px4-dev-raspi, \
px4-dev-ros-melodic, px4-dev-ros-noetic, px4-dev-ros2-dashing,\
px4-dev-ros2-eloquent, px4-dev-ros2-foxy, px4-dev-ros2-galactic, \
px4-dev-ros2-rolling, px4-dev-simulation-bionic, px4-dev-simulation-focal, \
Expand All @@ -32,6 +32,9 @@ px4-dev-base-focal:
px4-dev-base-jammy:
docker build -t px4io/px4-dev-base-jammy . -f Dockerfile_base-jammy

px4-dev-base-noble:
docker build -t px4io/px4-dev-base-noble . -f Dockerfile_base-noble

px4-dev-clang: px4-dev-base-bionic
docker build -t px4io/px4-dev-clang . -f Dockerfile_clang

Expand All @@ -44,6 +47,9 @@ px4-dev-nuttx-focal: px4-dev-base-focal
px4-dev-nuttx-jammy: px4-dev-base-jammy
docker build -t px4io/px4-dev-nuttx-jammy . -f Dockerfile_nuttx-jammy

px4-dev-nuttx-noble: px4-dev-base-noble
docker build -t px4io/px4-dev-nuttx-noble . -f Dockerfile_nuttx-noble

px4-dev-simulation-jammy: px4-dev-base-jammy
docker build -t px4io/px4-dev-simulation-jammy . -f Dockerfile_simulation-jammy

Expand Down

0 comments on commit 72126af

Please sign in to comment.