8000 Noble Containers by alexcekay · Pull Request #361 · PX4/PX4-containers · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Noble Containers #361

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Feb 12, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
< 8000 tr data-hunk="f89d4d9ef5ef05197b8b0835c257214ff2e3c7bbccd2b256d6b643f83fc9834f" class="show-top-border">
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 <alexander@auterion.com>"

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 <alexander@auterion.com>"

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
Loading
0