From 78013f745d1618c4ffefb42f3eb35be8cc34de5e Mon Sep 17 00:00:00 2001 From: Jeongseok Lee Date: Fri, 8 Mar 2024 18:20:55 -0800 Subject: [PATCH] Add workflows for docker cache --- .github/workflows/cache_docker.yml | 379 ++++++++++++++++++ .github/workflows/cache_vcpkg.yml | 2 + docker/docs/Dockerfile | 113 ++++++ docker/v6.13/Dockerfile.ubuntu.focal | 104 +++++ docker/v6.13/Dockerfile.ubuntu.jammy | 104 +++++ docker/v6.13/Dockerfile.ubuntu.noble | 103 +++++ docker/v6.14/Dockerfile.ubuntu.focal | 104 +++++ docker/v6.14/Dockerfile.ubuntu.jammy | 104 +++++ docker/v6.14/Dockerfile.ubuntu.noble | 103 +++++ docker/v7.0/Dockerfile.archlinux | 37 ++ docker/v7.0/Dockerfile.archlinux-min | 39 ++ docker/v7.0/Dockerfile.fedora | 58 +++ docker/v7.0/Dockerfile.fedora-min | 25 ++ docker/v7.0/Dockerfile.manylinux2014_aarch64 | 19 + .../v7.0/Dockerfile.manylinux2014_aarch64-min | 109 +++++ docker/v7.0/Dockerfile.manylinux2014_ppc64le | 19 + .../v7.0/Dockerfile.manylinux2014_ppc64le-min | 102 +++++ docker/v7.0/Dockerfile.manylinux2014_s390x | 17 + .../v7.0/Dockerfile.manylinux2014_s390x-min | 79 ++++ docker/v7.0/Dockerfile.manylinux2014_x86_64 | 104 +++++ docker/v7.0/Dockerfile.manylinux_2_28.brew | 30 ++ docker/v7.0/Dockerfile.manylinux_2_28_aarch64 | 19 + .../Dockerfile.manylinux_2_28_aarch64-min | 109 +++++ docker/v7.0/Dockerfile.manylinux_2_28_ppc64le | 19 + .../Dockerfile.manylinux_2_28_ppc64le-min | 102 +++++ docker/v7.0/Dockerfile.manylinux_2_28_s390x | 17 + .../v7.0/Dockerfile.manylinux_2_28_s390x-min | 102 +++++ docker/v7.0/Dockerfile.manylinux_2_28_x86_64 | 119 ++++++ docker/v7.0/Dockerfile.ubuntu.jammy | 76 ++++ docker/v7.0/Dockerfile.ubuntu.jammy-min | 44 ++ docker/v7.0/Dockerfile.ubuntu.lunar | 77 ++++ docker/v7.0/Dockerfile.ubuntu.lunar-min | 44 ++ docker/v8.0/Dockerfile.archlinux | 27 ++ docker/v8.0/Dockerfile.archlinux-min | 38 ++ docker/v8.0/Dockerfile.fedora | 57 +++ docker/v8.0/Dockerfile.fedora-min | 25 ++ docker/v8.0/Dockerfile.ubuntu.jammy | 102 +++++ docker/v8.0/Dockerfile.ubuntu.jammy-cuda | 42 ++ docker/v8.0/Dockerfile.ubuntu.jammy-min | 47 +++ docker/v8.0/Dockerfile.ubuntu.lunar | 102 +++++ docker/v8.0/Dockerfile.ubuntu.lunar-min | 47 +++ 41 files changed, 2969 insertions(+) create mode 100644 .github/workflows/cache_docker.yml create mode 100644 docker/docs/Dockerfile create mode 100644 docker/v6.13/Dockerfile.ubuntu.focal create mode 100644 docker/v6.13/Dockerfile.ubuntu.jammy create mode 100644 docker/v6.13/Dockerfile.ubuntu.noble create mode 100644 docker/v6.14/Dockerfile.ubuntu.focal create mode 100644 docker/v6.14/Dockerfile.ubuntu.jammy create mode 100644 docker/v6.14/Dockerfile.ubuntu.noble create mode 100644 docker/v7.0/Dockerfile.archlinux create mode 100644 docker/v7.0/Dockerfile.archlinux-min create mode 100644 docker/v7.0/Dockerfile.fedora create mode 100644 docker/v7.0/Dockerfile.fedora-min create mode 100644 docker/v7.0/Dockerfile.manylinux2014_aarch64 create mode 100644 docker/v7.0/Dockerfile.manylinux2014_aarch64-min create mode 100644 docker/v7.0/Dockerfile.manylinux2014_ppc64le create mode 100644 docker/v7.0/Dockerfile.manylinux2014_ppc64le-min create mode 100644 docker/v7.0/Dockerfile.manylinux2014_s390x create mode 100644 docker/v7.0/Dockerfile.manylinux2014_s390x-min create mode 100644 docker/v7.0/Dockerfile.manylinux2014_x86_64 create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28.brew create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_aarch64 create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_aarch64-min create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_ppc64le create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_ppc64le-min create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_s390x create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_s390x-min create mode 100644 docker/v7.0/Dockerfile.manylinux_2_28_x86_64 create mode 100644 docker/v7.0/Dockerfile.ubuntu.jammy create mode 100644 docker/v7.0/Dockerfile.ubuntu.jammy-min create mode 100644 docker/v7.0/Dockerfile.ubuntu.lunar create mode 100644 docker/v7.0/Dockerfile.ubuntu.lunar-min create mode 100644 docker/v8.0/Dockerfile.archlinux create mode 100644 docker/v8.0/Dockerfile.archlinux-min create mode 100644 docker/v8.0/Dockerfile.fedora create mode 100644 docker/v8.0/Dockerfile.fedora-min create mode 100644 docker/v8.0/Dockerfile.ubuntu.jammy create mode 100644 docker/v8.0/Dockerfile.ubuntu.jammy-cuda create mode 100644 docker/v8.0/Dockerfile.ubuntu.jammy-min create mode 100644 docker/v8.0/Dockerfile.ubuntu.lunar create mode 100644 docker/v8.0/Dockerfile.ubuntu.lunar-min diff --git a/.github/workflows/cache_docker.yml b/.github/workflows/cache_docker.yml new file mode 100644 index 0000000000000..3768e05c2af03 --- /dev/null +++ b/.github/workflows/cache_docker.yml @@ -0,0 +1,379 @@ +name: Cache Docker + +on: + push: + branches: ["**"] + paths: + - ".github/workflows/cache_docker.yml" + pull_request: + branches: ["**"] + paths: + - ".github/workflows/cache_docker.yml" + release: + types: [published] + schedule: + # Run at 02:00 UTC every Friday + # https://docs.github.com/en/actions/reference/events-that-trigger-workflows#scheduled-events + - cron: "0 2 * * FRI" + +env: + DOCKER_REPO: jslee02/dart-dev # https://hub.docker.com/repository/docker/jslee02/dart-dev + +jobs: + ubuntu: + name: ubuntu + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [focal, jammy, noble] + dart_version: [v6.13, v6.14] + platforms: ["linux/amd64,linux/arm64,linux/ppc64le,linux/s390x"] + build_min: [OFF] + include: + - distro: jammy + build_min: ON + dart_version: v7.0 + platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x + - distro: lunar + build_min: ON + dart_version: v7.0 + platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x + # - distro: jammy + # build_min: ON + # dart_version: v8.0 + # platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x + # - distro: jammy-cuda + # build_min: OFF + # dart_version: v8.0 + # platforms: linux/amd64,linux/arm64 + # - distro: lunar + # build_min: ON + # dart_version: v8.0 + # platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x + env: + UBUNTU_VERSION: ${{ matrix.distro }} + DART_VERSION: ${{ matrix.dart_version }} + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push (min) + id: docker_build_min + uses: docker/build-push-action@v4 + if: ${{ matrix.build_min == 'ON' }} + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.ubuntu.${{ env.UBUNTU_VERSION }}-min + platforms: ${{ matrix.platforms }} + push: true + tags: ${{ env.DOCKER_REPO }}:ubuntu-${{ env.UBUNTU_VERSION }}-min-${{ env.DART_VERSION }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.ubuntu.${{ env.UBUNTU_VERSION }} + platforms: ${{ matrix.platforms }} + push: true + tags: ${{ env.DOCKER_REPO }}:ubuntu-${{ env.UBUNTU_VERSION }}-${{ env.DART_VERSION }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + + # Bionic image for API documentation builds + bionic-docs: + name: bionic-docs + runs-on: ubuntu-latest + env: + UBUNTU_VERSION: bionic + DART_VERSION: docs + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile + push: true + tags: ${{ env.DOCKER_REPO }}:${{ env.UBUNTU_VERSION }}-${{ env.DART_VERSION }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + + # Archlinux on amd64 + archlinux: + name: archlinux + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [archlinux] + # dart_version: [v7.0, v8.0] + dart_version: [v7.0] + build_min: [ON] + env: + OS_VERSION: ${{ matrix.distro }} + DART_VERSION: ${{ matrix.dart_version }} + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push (min) + if: ${{ matrix.build_min == 'ON' }} + id: docker_build_min + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.${{ env.OS_VERSION }}-min + push: true + tags: ${{ env.DOCKER_REPO }}:${{ env.OS_VERSION }}-min-${{ env.DART_VERSION }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.${{ env.OS_VERSION }} + push: true + tags: ${{ env.DOCKER_REPO }}:${{ env.OS_VERSION }}-${{ env.DART_VERSION }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + + # Fedora + fedora: + name: fedora + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + distro: [fedora] + # dart_version: [v7.0, v8.0] + dart_version: [v7.0] + platforms: ["linux/amd64,linux/arm64,linux/ppc64le,linux/s390x"] + build_min: [ON] + env: + OS_VERSION: ${{ matrix.distro }} + DART_VERSION: ${{ matrix.dart_version }} + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push (min) + id: docker_build_min + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.${{ env.OS_VERSION }}-min + platforms: ${{ matrix.platforms }} + push: true + tags: ${{ env.DOCKER_REPO }}:${{ env.OS_VERSION }}-min-${{ env.DART_VERSION }} + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./docker/${{ env.DART_VERSION }}/Dockerfile.${{ env.OS_VERSION }} + platforms: ${{ matrix.platforms }} + push: true + tags: ${{ env.DOCKER_REPO }}:${{ env.OS_VERSION }}-${{ env.DART_VERSION }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + + # Manylinux min + manylinux_min: + name: manylinux (min) + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental }} + strategy: + fail-fast: false + matrix: + dockerfile: [Dockerfile.manylinux2014_aarch64-min] + base_image: [quay.io/pypa/manylinux2014_aarch64] + image: [manylinux2014_aarch64-min] + platforms: ["linux/arm64"] + dart_version: [v7.0] + experimental: [true] + include: + - dockerfile: Dockerfile.manylinux2014_ppc64le-min + base_image: quay.io/pypa/manylinux2014_ppc64le + image: manylinux2014_ppc64le-min + platforms: "linux/ppc64le" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux2014_s390x-min + base_image: quay.io/pypa/manylinux2014_s390x + image: manylinux2014_s390x-min + platforms: "linux/s390x" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_aarch64-min + base_image: quay.io/pypa/manylinux_2_28_aarch64 + image: manylinux_2_28_aarch64-min + platforms: "linux/arm64" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_ppc64le-min + base_image: quay.io/pypa/manylinux_2_28_ppc64le + image: manylinux_2_28_ppc64le-min + platforms: "linux/ppc64le" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_s390x-min + base_image: quay.io/pypa/manylinux_2_28_s390x + image: manylinux_2_28_s390x-min + platforms: "linux/s390x" + dart_version: v7.0 + experimental: true + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./${{ matrix.dart_version }}/${{ matrix.dockerfile }} + platforms: ${{ matrix.platforms }} + build-args: BASE_IMAGE=${{ matrix.base_image }} + push: true + tags: ${{ env.DOCKER_REPO }}:${{ matrix.image }}-${{ matrix.dart_version }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} + + # Manylinux + manylinux: + name: manylinux + needs: [manylinux_min] + runs-on: ubuntu-latest + continue-on-error: ${{ matrix.experimental }} + strategy: + fail-fast: false + matrix: + dockerfile: [Dockerfile.manylinux2014_x86_64] + base_image: [quay.io/pypa/manylinux2014_x86_64] + image: [manylinux2014_x86_64] + platforms: ["linux/amd64"] + dart_version: [v7.0] + experimental: [false] + include: + - dockerfile: Dockerfile.manylinux2014_aarch64 + base_image: jslee02/dart-dev:manylinux2014_aarch64-min-v7.0 + image: manylinux2014_aarch64 + platforms: "linux/arm64" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux2014_ppc64le + base_image: jslee02/dart-dev:manylinux2014_ppc64le-min-v7.0 + image: manylinux2014_ppc64le + platforms: "linux/ppc64le" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux2014_s390x + base_image: jslee02/dart-dev:manylinux2014_s390x-min-v7.0 + image: manylinux2014_s390x + platforms: "linux/s390x" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_x86_64 + base_image: quay.io/pypa/manylinux_2_28_x86_64 + image: manylinux_2_28_x86_64 + platforms: "linux/amd64" + dart_version: v7.0 + experimental: false + + - dockerfile: Dockerfile.manylinux_2_28_aarch64 + base_image: jslee02/dart-dev:manylinux_2_28_aarch64-min-v7.0 + image: manylinux_2_28_aarch64 + platforms: "linux/arm64" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_ppc64le + base_image: jslee02/dart-dev:manylinux_2_28_ppc64le-min-v7.0 + image: manylinux_2_28_ppc64le + platforms: "linux/ppc64le" + dart_version: v7.0 + experimental: true + + - dockerfile: Dockerfile.manylinux_2_28_s390x + base_image: jslee02/dart-dev:manylinux_2_28_s390x-min-v7.0 + image: manylinux_2_28_s390x + platforms: "linux/s390x" + dart_version: v7.0 + experimental: true + steps: + # https://github.com/marketplace/actions/docker-setup-qemu + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + # https://github.com/marketplace/actions/docker-setup-buildx + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + # https://github.com/marketplace/actions/docker-login + - name: Login to DockerHub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + # https://github.com/marketplace/actions/build-and-push-docker-images + - name: Build and push + id: docker_build + uses: docker/build-push-action@v4 + with: + file: ./${{ matrix.dart_version }}/${{ matrix.dockerfile }} + platforms: ${{ matrix.platforms }} + build-args: BASE_IMAGE=${{ matrix.base_image }} + push: true + tags: ${{ env.DOCKER_REPO }}:${{ matrix.image }}-${{ matrix.dart_version }} + - name: Image digest + run: echo ${{ steps.docker_build.outputs.digest }} diff --git a/.github/workflows/cache_vcpkg.yml b/.github/workflows/cache_vcpkg.yml index d09602729ec2e..cefcd3ac31a29 100644 --- a/.github/workflows/cache_vcpkg.yml +++ b/.github/workflows/cache_vcpkg.yml @@ -7,6 +7,8 @@ on: - ".github/workflows/cache_vcpkg.yml" pull_request: branches: ["**"] + paths: + - ".github/workflows/cache_vcpkg.yml" release: types: [published] schedule: diff --git a/docker/docs/Dockerfile b/docker/docs/Dockerfile new file mode 100644 index 0000000000000..b8da07e78c835 --- /dev/null +++ b/docker/docs/Dockerfile @@ -0,0 +1,113 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:bionic + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-6.0 \ + clang-format-9 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libboost-filesystem-dev \ + libboost-system-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# DART required dependencies for building API documentation of DART < 6.10 +RUN apt-get install -y --no-install-recommends \ + libboost-regex-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-dev \ + liboctomap-dev \ + libode-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + python3-dev \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN git clone https://github.com/pybind/pybind11 -b 'v2.6.2' --single-branch --depth 1 \ + && mkdir -p pybind11/build \ + && pushd pybind11/build \ + && cmake .. -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pybind11 + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.13/Dockerfile.ubuntu.focal b/docker/v6.13/Dockerfile.ubuntu.focal new file mode 100644 index 0000000000000..ab79bb5c913cc --- /dev/null +++ b/docker/v6.13/Dockerfile.ubuntu.focal @@ -0,0 +1,104 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:focal + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-9 \ + clang-format-12 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.13/Dockerfile.ubuntu.jammy b/docker/v6.13/Dockerfile.ubuntu.jammy new file mode 100644 index 0000000000000..73e303048acee --- /dev/null +++ b/docker/v6.13/Dockerfile.ubuntu.jammy @@ -0,0 +1,104 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:jammy + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-12 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.13/Dockerfile.ubuntu.noble b/docker/v6.13/Dockerfile.ubuntu.noble new file mode 100644 index 0000000000000..1e18feebcc9b5 --- /dev/null +++ b/docker/v6.13/Dockerfile.ubuntu.noble @@ -0,0 +1,103 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:noble + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-pytest \ + python3-setuptools + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.14/Dockerfile.ubuntu.focal b/docker/v6.14/Dockerfile.ubuntu.focal new file mode 100644 index 0000000000000..ab79bb5c913cc --- /dev/null +++ b/docker/v6.14/Dockerfile.ubuntu.focal @@ -0,0 +1,104 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:focal + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-9 \ + clang-format-12 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.14/Dockerfile.ubuntu.jammy b/docker/v6.14/Dockerfile.ubuntu.jammy new file mode 100644 index 0000000000000..73e303048acee --- /dev/null +++ b/docker/v6.14/Dockerfile.ubuntu.jammy @@ -0,0 +1,104 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:jammy + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-12 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v6.14/Dockerfile.ubuntu.noble b/docker/v6.14/Dockerfile.ubuntu.noble new file mode 100644 index 0000000000000..1e18feebcc9b5 --- /dev/null +++ b/docker/v6.14/Dockerfile.ubuntu.noble @@ -0,0 +1,103 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:noble + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + liblz4-dev \ + libflann-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev \ + libspdlog-dev + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-pytest \ + python3-setuptools + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v7.0/Dockerfile.archlinux b/docker/v7.0/Dockerfile.archlinux new file mode 100644 index 0000000000000..64ef79dce4c99 --- /dev/null +++ b/docker/v7.0/Dockerfile.archlinux @@ -0,0 +1,37 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:archlinux-min-v7.0 + +USER builder + +# ============================================================================== +# DART optional dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + bullet \ + coin-or-ipopt \ + freeglut \ + nlopt \ + octomap \ + ode \ + opencl-clhpp \ + opencl-headers \ + opencl-icd-loader \ + openscenegraph \ + pagmo \ + spdlog \ + tinyxml2 \ + urdfdom + +# ============================================================================== +# Python binding dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + python3 \ + python-pip \ + pybind11 \ + python-numpy \ + python-pytest \ + python-requests \ + python-setuptools + +USER root diff --git a/docker/v7.0/Dockerfile.archlinux-min b/docker/v7.0/Dockerfile.archlinux-min new file mode 100644 index 0000000000000..84a744bb37857 --- /dev/null +++ b/docker/v7.0/Dockerfile.archlinux-min @@ -0,0 +1,39 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM archlinux:latest + +#=============================================================================== +# Install packages only available in pacman +#=============================================================================== +RUN pacman -Syuq --noconfirm glu + +#=============================================================================== +# Install yay +#=============================================================================== +RUN pacman -Syuq --noconfirm git base-devel sudo go +RUN echo "Defaults lecture = never" > /etc/sudoers.d/privacy \ + && echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/wheel \ + && useradd -m -G wheel -s /bin/bash builder +USER builder +WORKDIR /home/builder +RUN git clone https://aur.archlinux.org/yay.git --single-branch --depth 1 \ + && cd yay \ + && makepkg -si --noconfirm \ + && cd .. \ + && rm -rf .cache yay + +#=============================================================================== +# Build tools +#=============================================================================== +RUN yay -Syu --needed --noconfirm \ + clang \ + cmake \ + doxygen \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + assimp eigen fcl fmt libccd + +USER root diff --git a/docker/v7.0/Dockerfile.fedora b/docker/v7.0/Dockerfile.fedora new file mode 100644 index 0000000000000..847c44cfa944f --- /dev/null +++ b/docker/v7.0/Dockerfile.fedora @@ -0,0 +1,58 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:fedora-min-v7.0 + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +RUN dnf makecache -y --refresh + +# ============================================================================== +# Build tools +# ============================================================================== +RUN dnf install -y \ + clang \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + pkg-config \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN dnf install -y \ + assimp-devel \ + eigen3-devel \ + fcl-devel \ + fmt-devel \ + glew-devel \ + glfw-devel \ + libccd-devel + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN dnf install -y \ + bullet-devel \ + coin-or-Ipopt-devel \ + freeglut-devel \ + nlopt-devel \ + octomap-devel \ + ode-devel \ + OpenSceneGraph-devel \ + spdlog-devel \ + tinyxml2-devel \ + urdfdom-devel + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN dnf install -y \ + python3 \ + python-numpy \ + python-pytest diff --git a/docker/v7.0/Dockerfile.fedora-min b/docker/v7.0/Dockerfile.fedora-min new file mode 100644 index 0000000000000..11ad28f0b463a --- /dev/null +++ b/docker/v7.0/Dockerfile.fedora-min @@ -0,0 +1,25 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM fedora:latest + +RUN dnf makecache -y --refresh + +#=============================================================================== +# Build tools +#=============================================================================== +RUN dnf install -y \ + clang \ + cmake \ + doxygen \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN dnf install -y \ + assimp-devel \ + eigen3-devel \ + fcl-devel \ + fmt-devel \ + glew-devel \ + glfw-devel \ + libccd-devel diff --git a/docker/v7.0/Dockerfile.manylinux2014_aarch64 b/docker/v7.0/Dockerfile.manylinux2014_aarch64 new file mode 100644 index 0000000000000..6078ee8f227de --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_aarch64 @@ -0,0 +1,19 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux2014_aarch64-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux2014_aarch64-min b/docker/v7.0/Dockerfile.manylinux2014_aarch64-min new file mode 100644 index 0000000000000..f240310258d6f --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_aarch64-min @@ -0,0 +1,109 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux2014_aarch64 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# tinyxml +# RUN wget https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz \ +# && tar -xzf tinyxml_2_6_2.tar.gz \ +# && cd tinyxml \ +# && make \ +# && make install \ +# && cd .. \ +# && rm -rf tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux2014_ppc64le b/docker/v7.0/Dockerfile.manylinux2014_ppc64le new file mode 100644 index 0000000000000..7704e3d33f749 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_ppc64le @@ -0,0 +1,19 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux2014_ppc64le-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux2014_ppc64le-min b/docker/v7.0/Dockerfile.manylinux2014_ppc64le-min new file mode 100644 index 0000000000000..50aa1b5029093 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_ppc64le-min @@ -0,0 +1,102 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux2014_ppc64le +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux2014_s390x b/docker/v7.0/Dockerfile.manylinux2014_s390x new file mode 100644 index 0000000000000..d54d72ea75193 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_s390x @@ -0,0 +1,17 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux2014_s390x-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux2014_s390x-min b/docker/v7.0/Dockerfile.manylinux2014_s390x-min new file mode 100644 index 0000000000000..38905e7c1f01f --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_s390x-min @@ -0,0 +1,79 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux2014_s390x +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt + +RUN yum install -y glew-devel libccd-devel boost-devel bullet-devel nlopt-devel spdlog-devel tinyxml-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux2014_x86_64 b/docker/v7.0/Dockerfile.manylinux2014_x86_64 new file mode 100644 index 0000000000000..e2d2540490071 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux2014_x86_64 @@ -0,0 +1,104 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux2014_x86_64 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +RUN yum install -y \ + boost-devel \ + bullet-devel \ + coin-or-Ipopt-devel \ + doxygen \ + fmt-devel \ + freeglut-devel \ + glew-devel \ + libccd-devel \ + python3-devel \ + spdlog-devel \ + tinyxml-devel + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# nlopt +RUN git clone https://github.com/stevengj/nlopt.git -b 'v2.7.1' \ + && mkdir -p nlopt/build \ + && cmake nlopt -B nlopt/build -DCMAKE_BUILD_TYPE=Release \ + && cmake --build nlopt/build --target install -j${NUM_CORES} \ + && rm -rf nlopt + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# ODE +RUN git clone https://bitbucket.org/odedevs/ode.git -b '0.16.3' \ + && mkdir -p ode/build \ + && cmake ode -B ode/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build ode/build --target install -j${NUM_CORES} \ + && rm -rf ode + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux_2_28.brew b/docker/v7.0/Dockerfile.manylinux_2_28.brew new file mode 100644 index 0000000000000..c2edc5e944fef --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28.brew @@ -0,0 +1,30 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux_2_28_x86_64 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Install essential dev tools +RUN yum groupinstall -y 'Development Tools' + +# Install Homebrew on Linux and follow-ups +RUN useradd -m -s /bin/zsh linuxbrew && \ + usermod -aG root linuxbrew && \ + mkdir -p /home/linuxbrew/.linuxbrew && \ + chown -R linuxbrew: /home/linuxbrew/.linuxbrew +USER linuxbrew +RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" +RUN chown -R $CONTAINER_USER: /home/linuxbrew/.linuxbrew +ENV PATH="/home/linuxbrew/.linuxbrew/bin:${PATH}" +RUN brew install gcc + +# Build dependencies +RUN brew install cmake pkg-config + +# DART dependencies +RUN brew install assimp bullet eigen fcl fmt flann freeglut ipopt libccd nlopt octomap ode pagmo spdlog tinyxml2 urdfdom yaml-cpp +RUN brew install open-scene-graph --HEAD + +# dartpy dependencies +RUN brew install pybind11 + +USER root diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_aarch64 b/docker/v7.0/Dockerfile.manylinux_2_28_aarch64 new file mode 100644 index 0000000000000..19ea321c81f6f --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_aarch64 @@ -0,0 +1,19 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux_2_28_aarch64-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_aarch64-min b/docker/v7.0/Dockerfile.manylinux_2_28_aarch64-min new file mode 100644 index 0000000000000..826b1e5d8b340 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_aarch64-min @@ -0,0 +1,109 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux_2_28_aarch64 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# tinyxml +# RUN wget https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz \ +# && tar -xzf tinyxml_2_6_2.tar.gz \ +# && cd tinyxml \ +# && make \ +# && make install \ +# && cd .. \ +# && rm -rf tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le b/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le new file mode 100644 index 0000000000000..99f702959d14e --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le @@ -0,0 +1,19 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux_2_28_ppc64le-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le-min b/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le-min new file mode 100644 index 0000000000000..5cff80bc2545c --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_ppc64le-min @@ -0,0 +1,102 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux_2_28_ppc64le +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_s390x b/docker/v7.0/Dockerfile.manylinux_2_28_s390x new file mode 100644 index 0000000000000..309f477da425c --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_s390x @@ -0,0 +1,17 @@ +ARG BASE_IMAGE=jslee02/dart-dev:manylinux_2_28_s390x-min-v7.0 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_s390x-min b/docker/v7.0/Dockerfile.manylinux_2_28_s390x-min new file mode 100644 index 0000000000000..e5d3b3f7d4fbd --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_s390x-min @@ -0,0 +1,102 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux_2_28_x390x +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 diff --git a/docker/v7.0/Dockerfile.manylinux_2_28_x86_64 b/docker/v7.0/Dockerfile.manylinux_2_28_x86_64 new file mode 100644 index 0000000000000..9a520c6f82707 --- /dev/null +++ b/docker/v7.0/Dockerfile.manylinux_2_28_x86_64 @@ -0,0 +1,119 @@ +ARG BASE_IMAGE=quay.io/pypa/manylinux_2_28_x86_64 +FROM $BASE_IMAGE + +ARG NUM_CORES=14 + +# Missing optional dependencies: +# ipopt +# nlopt +# spdlog + +RUN yum install -y glew-devel boost-devel python3-devel + +# fmt +RUN git clone https://github.com/fmtlib/fmt.git -b 9.1.0 \ + && mkdir -p fmt/build \ + && cmake fmt -B fmt/build -DCMAKE_BUILD_TYPE=Release -DFMT_TEST=OFF \ + && cmake --build fmt/build --target install -j${NUM_CORES} \ + && rm -rf fmt + +# assimp +RUN git clone https://github.com/assimp/assimp.git -b 'v5.2.5' \ + && mkdir -p assimp/build \ + && cmake assimp -B assimp/build -DCMAKE_BUILD_TYPE=Release -DASSIMP_BUILD_TESTS=OFF -DASSIMP_WARNINGS_AS_ERRORS=OFF \ + && cmake --build assimp/build --target install -j${NUM_CORES} \ + && rm -rf assimp + +# eigen +RUN git clone https://gitlab.com/libeigen/eigen.git -b '3.4.0' \ + && mkdir -p eigen/build \ + && cmake eigen -B eigen/build -DCMAKE_BUILD_TYPE=Release -DEIGEN_BUILD_TESTING=OFF -DEIGEN_BUILD_DOC=OFF \ + && cmake --build eigen/build --target install -j${NUM_CORES} \ + && rm -rf eigen + +# octomap +RUN git clone https://github.com/OctoMap/octomap.git -b 'v1.9.6' \ + && mkdir -p octomap/build \ + && cmake octomap -B octomap/build -DCMAKE_BUILD_TYPE=Release -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_OCTOVIS_SUBPROJECT=OFF -DBUILD_DYNAMICETD3D_SUBPROJECT=OFF -DBUILD_TESTING=OFF \ + && cmake --build octomap/build --target install -j${NUM_CORES} \ + && rm -rf octomap + +# libccd +RUN git clone https://github.com/danfis/libccd.git -b 'v2.1' \ + && mkdir -p libccd/build \ + && cmake libccd -B libccd/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build libccd/build --target install -j${NUM_CORES} \ + && rm -rf libccd + +# fcl +RUN git clone https://github.com/flexible-collision-library/fcl.git -b '0.7.0' \ + && mkdir -p fcl/build \ + && cmake fcl -B fcl/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build fcl/build --target install -j${NUM_CORES} \ + && rm -rf fcl + +# tinyxml +# RUN wget https://sourceforge.net/projects/tinyxml/files/tinyxml/2.6.2/tinyxml_2_6_2.tar.gz \ +# && tar -xzf tinyxml_2_6_2.tar.gz \ +# && cd tinyxml \ +# && make \ +# && make install \ +# && cd .. \ +# && rm -rf tinyxml +RUN git clone https://github.com/jslee02/tinyxml.git \ + && mkdir -p tinyxml/build \ + && cmake tinyxml -B tinyxml/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build tinyxml/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml + +# tinyxml2 +RUN git clone https://github.com/leethomason/tinyxml2.git -b '9.0.0' \ + && mkdir -p tinyxml2/build \ + && cmake tinyxml2 -B tinyxml2/build -DCMAKE_BUILD_TYPE=Release -Dtinyxml2_BUILD_TESTING=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + && cmake --build tinyxml2/build --target install -j${NUM_CORES} \ + && rm -rf tinyxml2 + +# console_bridge +RUN git clone https://github.com/ros/console_bridge.git -b 1.0.2 \ + && mkdir -p console_bridge/build \ + && cmake console_bridge -B console_bridge/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build console_bridge/build --target install -j${NUM_CORES} \ + && rm -rf console_bridge + +# urdfdom_headers +RUN git clone https://github.com/ros/urdfdom_headers.git -b 1.0.5 \ + && mkdir -p urdfdom_headers/build \ + && cmake urdfdom_headers -B urdfdom_headers/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom_headers/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom_headers + +# urdfdom +RUN git clone https://github.com/ros/urdfdom.git -b 3.0.0 \ + && mkdir -p urdfdom/build \ + && cmake urdfdom -B urdfdom/build -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF \ + && cmake --build urdfdom/build --target install -j${NUM_CORES} \ + && rm -rf urdfdom + +# pybind11 +RUN git clone https://github.com/pybind/pybind11.git -b 'v2.10.3' \ + && mkdir -p pybind11/build \ + && cmake pybind11 -B pybind11/build -DCMAKE_BUILD_TYPE=Release -DPYBIND11_TEST=OFF \ + && cmake --build pybind11/build --target install -j${NUM_CORES} \ + && rm -rf pybind11 + +# Bullet +RUN git clone https://github.com/bulletphysics/bullet3.git -b 3.25 \ + && mkdir -p bullet3/build \ + && cmake bullet3 -B bullet3/build -DCMAKE_BUILD_TYPE=Release -DBUILD_UNIT_TESTS=OFF -DBUILD_CPU_DEMOS=OFF \ + && cmake --build bullet3/build --target install -j${NUM_CORES} \ + && rm -rf bullet3 + +# openscenegraph +RUN git clone https://github.com/openscenegraph/OpenSceneGraph.git \ + && mkdir -p OpenSceneGraph/build \ + && cmake OpenSceneGraph -B OpenSceneGraph/build \ + -DCMAKE_BUILD_TYPE=Release \ + -DBUILD_OSG_APPLICATIONS=OFF \ + -DBUILD_OSG_DEPRECATED_SERIALIZERS=OFF \ + && cmake --build OpenSceneGraph/build --target install -j${NUM_CORES} \ + && rm -rf OpenSceneGraph diff --git a/docker/v7.0/Dockerfile.ubuntu.jammy b/docker/v7.0/Dockerfile.ubuntu.jammy new file mode 100644 index 0000000000000..2bd6bf9307260 --- /dev/null +++ b/docker/v7.0/Dockerfile.ubuntu.jammy @@ -0,0 +1,76 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:ubuntu-jammy-min-v7.0 + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libspdlog-dev \ + libyaml-cpp-dev \ + ocl-icd-opencl-dev \ + opencl-headers \ + opencl-clhpp-headers + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-pip + +RUN pip3 install --upgrade pip +RUN pip3 install numpy pytest requests setuptools -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v7.0/Dockerfile.ubuntu.jammy-min b/docker/v7.0/Dockerfile.ubuntu.jammy-min new file mode 100644 index 0000000000000..c90e442f44c32 --- /dev/null +++ b/docker/v7.0/Dockerfile.ubuntu.jammy-min @@ -0,0 +1,44 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:jammy + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v7.0/Dockerfile.ubuntu.lunar b/docker/v7.0/Dockerfile.ubuntu.lunar new file mode 100644 index 0000000000000..6346c2d15b308 --- /dev/null +++ b/docker/v7.0/Dockerfile.ubuntu.lunar @@ -0,0 +1,77 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:ubuntu-lunar-min-v7.0 + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + freeglut3-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libspdlog-dev \ + libyaml-cpp-dev \ + ocl-icd-opencl-dev \ + opencl-headers \ + opencl-clhpp-headers + +# pagmo2 +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libboost-serialization-dev \ + libeigen3-dev \ + libnlopt-cxx-dev \ + libtbb-dev +RUN git clone https://github.com/esa/pagmo2.git -b 'v2.19.0' --single-branch --depth 1 \ + && mkdir pagmo2/build \ + && pushd pagmo2/build \ + && cmake .. \ + -DCMAKE_BUILD_TYPE=Release \ + -DPAGMO_WITH_EIGEN3=ON \ + -DPAGMO_WITH_NLOPT=OFF \ + -DPAGMO_WITH_IPOPT=ON \ + -DPAGMO_BUILD_TESTS=OFF \ + -DPAGMO_BUILD_BENCHMARKS=OFF \ + -DPAGMO_BUILD_TUTORIALS=OFF \ + && make -j$(nproc) \ + && make install \ + && popd \ + && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get update && apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-pip \ + python3-numpy \ + python3-pytest \ + python3-requests \ + python3-setuptools + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v7.0/Dockerfile.ubuntu.lunar-min b/docker/v7.0/Dockerfile.ubuntu.lunar-min new file mode 100644 index 0000000000000..dca82063dd592 --- /dev/null +++ b/docker/v7.0/Dockerfile.ubuntu.lunar-min @@ -0,0 +1,44 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:lunar + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v8.0/Dockerfile.archlinux b/docker/v8.0/Dockerfile.archlinux new file mode 100644 index 0000000000000..2da4df603b575 --- /dev/null +++ b/docker/v8.0/Dockerfile.archlinux @@ -0,0 +1,27 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:archlinux-min-v8.0 + +# ============================================================================== +# DART optional dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + bullet \ + coin-or-ipopt \ + nlopt \ + octomap \ + ode \ + openscenegraph \ + pagmo \ + spdlog \ + tinyxml2 \ + urdfdom \ + imgui + +# ============================================================================== +# Python binding dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + python3 \ + python-numpy \ + python-pytest \ + pybind11 diff --git a/docker/v8.0/Dockerfile.archlinux-min b/docker/v8.0/Dockerfile.archlinux-min new file mode 100644 index 0000000000000..2201211035097 --- /dev/null +++ b/docker/v8.0/Dockerfile.archlinux-min @@ -0,0 +1,38 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM archlinux:latest + +#=============================================================================== +# Install packages only available in pacman +#=============================================================================== +RUN pacman -Syuq --noconfirm glu + +#=============================================================================== +# Install yay +#=============================================================================== +RUN pacman -Syuq --noconfirm git base-devel sudo go +RUN echo "Defaults lecture = never" > /etc/sudoers.d/privacy \ + && echo "%wheel ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/wheel \ + && useradd -m -G wheel -s /bin/bash builder +USER builder +WORKDIR /home/builder +RUN git clone https://aur.archlinux.org/yay.git --single-branch --depth 1 \ + && cd yay \ + && makepkg -si --noconfirm \ + && cd .. \ + && rm -rf .cache yay +USER root + +#=============================================================================== +# Build tools +#=============================================================================== +RUN yay -Syu --needed --noconfirm \ + clang \ + cmake \ + doxygen \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN yay -Syu --needed --noconfirm \ + assimp eigen fcl fmt glew glfw libccd diff --git a/docker/v8.0/Dockerfile.fedora b/docker/v8.0/Dockerfile.fedora new file mode 100644 index 0000000000000..17f3711c3500d --- /dev/null +++ b/docker/v8.0/Dockerfile.fedora @@ -0,0 +1,57 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:fedora-min-v8.0 + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +RUN dnf makecache -y --refresh + +# ============================================================================== +# Build tools +# ============================================================================== +RUN dnf install -y \ + clang \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + pkg-config \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN dnf install -y \ + assimp-devel \ + eigen3-devel \ + fcl-devel \ + fmt-devel \ + glew-devel \ + glfw-devel \ + libccd-devel + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN dnf install -y \ + bullet-devel \ + coin-or-Ipopt-devel \ + nlopt-devel \ + octomap-devel \ + ode-devel \ + OpenSceneGraph-devel \ + spdlog-devel \ + tinyxml2-devel \ + urdfdom-devel + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN dnf install -y \ + python3 \ + python-numpy \ + python-pytest diff --git a/docker/v8.0/Dockerfile.fedora-min b/docker/v8.0/Dockerfile.fedora-min new file mode 100644 index 0000000000000..11ad28f0b463a --- /dev/null +++ b/docker/v8.0/Dockerfile.fedora-min @@ -0,0 +1,25 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM fedora:latest + +RUN dnf makecache -y --refresh + +#=============================================================================== +# Build tools +#=============================================================================== +RUN dnf install -y \ + clang \ + cmake \ + doxygen \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN dnf install -y \ + assimp-devel \ + eigen3-devel \ + fcl-devel \ + fmt-devel \ + glew-devel \ + glfw-devel \ + libccd-devel diff --git a/docker/v8.0/Dockerfile.ubuntu.jammy b/docker/v8.0/Dockerfile.ubuntu.jammy new file mode 100644 index 0000000000000..051ffe41dd2da --- /dev/null +++ b/docker/v8.0/Dockerfile.ubuntu.jammy @@ -0,0 +1,102 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:ubuntu-jammy-min-v8.0 + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev \ + libglew-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev + +# pagmo2 +# RUN apt-get install -y --no-install-recommends \ +# coinor-libipopt-dev \ +# libboost-serialization-dev \ +# libeigen3-dev \ +# libnlopt-cxx-dev \ +# libtbb-dev +# RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ +# && mkdir pagmo2/build \ +# && pushd pagmo2/build \ +# && cmake .. \ +# -DCMAKE_BUILD_TYPE=Release \ +# -DPAGMO_WITH_EIGEN3=ON \ +# -DPAGMO_WITH_NLOPT=OFF \ +# -DPAGMO_WITH_IPOPT=ON \ +# -DPAGMO_BUILD_TESTS=OFF \ +# -DPAGMO_BUILD_BENCHMARKS=OFF \ +# -DPAGMO_BUILD_TUTORIALS=OFF \ +# && make -j$(nproc) \ +# && make install \ +# && popd \ +# && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v8.0/Dockerfile.ubuntu.jammy-cuda b/docker/v8.0/Dockerfile.ubuntu.jammy-cuda new file mode 100644 index 0000000000000..d203e38f04560 --- /dev/null +++ b/docker/v8.0/Dockerfile.ubuntu.jammy-cuda @@ -0,0 +1,42 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:ubuntu-jammy-v8.0 + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== + +ENV UBUNTU_VERSION="2204" +ENV PIN_FILENAME="cuda-ubuntu${UBUNTU_VERSION}.pin" +ENV PIN_URL="https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/${PIN_FILENAME}" +ENV APT_KEY_URL="https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/3bf863cc.pub" +ENV REPO_URL="https://developer.download.nvidia.com/compute/cuda/repos/ubuntu${UBUNTU_VERSION}/x86_64/" + +RUN echo "PIN_FILENAME ${PIN_FILENAME}" +RUN echo "PIN_URL ${PIN_URL}" +RUN echo "APT_KEY_URL ${APT_KEY_URL}" + +RUN apt-get install -y --no-install-recommends \ + wget \ + dirmngr \ + gpg-agent \ + && wget ${PIN_URL} \ + && mv ${PIN_FILENAME} /etc/apt/preferences.d/cuda-repository-pin-600 \ + && apt-key adv --fetch-keys ${APT_KEY_URL} \ + && add-apt-repository "deb ${REPO_URL} /" + +RUN apt-get install -y --no-install-recommends \ + nvidia-cuda-toolkit + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v8.0/Dockerfile.ubuntu.jammy-min b/docker/v8.0/Dockerfile.ubuntu.jammy-min new file mode 100644 index 0000000000000..2319ea615ec59 --- /dev/null +++ b/docker/v8.0/Dockerfile.ubuntu.jammy-min @@ -0,0 +1,47 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:jammy + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev \ + libglew-dev \ + libglfw3-dev \ + libspdlog-dev + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v8.0/Dockerfile.ubuntu.lunar b/docker/v8.0/Dockerfile.ubuntu.lunar new file mode 100644 index 0000000000000..59035166ae14f --- /dev/null +++ b/docker/v8.0/Dockerfile.ubuntu.lunar @@ -0,0 +1,102 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM jslee02/dart-dev:ubuntu-lunar-min-v8.0 + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev \ + libglew-dev + +# ============================================================================== +# DART optional dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + coinor-libipopt-dev \ + libxi-dev \ + libxmu-dev \ + libbullet-dev \ + libtinyxml2-dev \ + liburdfdom-dev \ + liburdfdom-headers-dev \ + libopenscenegraph-dev \ + libnlopt-cxx-dev \ + liboctomap-dev \ + libode-dev \ + libimgui-dev + +# pagmo2 +# RUN apt-get install -y --no-install-recommends \ +# coinor-libipopt-dev \ +# libboost-serialization-dev \ +# libeigen3-dev \ +# libnlopt-cxx-dev \ +# libtbb-dev +# RUN git clone https://github.com/esa/pagmo2.git -b 'v2.17.0' --single-branch --depth 1 \ +# && mkdir pagmo2/build \ +# && pushd pagmo2/build \ +# && cmake .. \ +# -DCMAKE_BUILD_TYPE=Release \ +# -DPAGMO_WITH_EIGEN3=ON \ +# -DPAGMO_WITH_NLOPT=OFF \ +# -DPAGMO_WITH_IPOPT=ON \ +# -DPAGMO_BUILD_TESTS=OFF \ +# -DPAGMO_BUILD_BENCHMARKS=OFF \ +# -DPAGMO_BUILD_TUTORIALS=OFF \ +# && make -j$(nproc) \ +# && make install \ +# && popd \ +# && rm -rf pagmo2 + +# ============================================================================== +# Python binding dependencies +# ============================================================================== + +RUN apt-get install -y --no-install-recommends \ + libpython3-dev \ + pybind11-dev \ + python3 \ + python3-dev \ + python3-distutils \ + python3-numpy \ + python3-pip \ + python3-setuptools + +RUN pip3 install pytest -U + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/* diff --git a/docker/v8.0/Dockerfile.ubuntu.lunar-min b/docker/v8.0/Dockerfile.ubuntu.lunar-min new file mode 100644 index 0000000000000..d4b44ae8c7a9b --- /dev/null +++ b/docker/v8.0/Dockerfile.ubuntu.lunar-min @@ -0,0 +1,47 @@ +ARG TARGETPLATFORM=linux/amd64 +FROM --platform=$TARGETPLATFORM ubuntu:lunar + +ARG DEBIAN_FRONTEND=noninteractive + +# Use /bin/bash to use pushd/popd +SHELL ["/bin/bash", "-c"] + +# Update apt-get +RUN apt-get update -qq + +# ============================================================================== +# Build tools +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + build-essential \ + clang \ + clang-format-14 \ + cmake \ + curl \ + doxygen \ + gcovr \ + git \ + lcov \ + lsb-release \ + pkg-config \ + software-properties-common \ + valgrind + +# ============================================================================== +# DART required dependencies +# ============================================================================== +RUN apt-get install -y --no-install-recommends \ + libassimp-dev \ + libccd-dev \ + libeigen3-dev \ + libfcl-dev \ + libfmt-dev \ + libglew-dev \ + libglfw3-dev \ + libspdlog-dev + +# ============================================================================== +# Clean up +# ============================================================================== + +RUN rm -rf /var/lib/apt/lists/*