Added docker assets

This commit is contained in:
Justin Berger 2023-02-23 10:46:21 -07:00
parent 5319743334
commit 5cfa4b50d2
2 changed files with 71 additions and 0 deletions

45
.github/workflows/docker.yml vendored Normal file
View file

@ -0,0 +1,45 @@
name: Build Docker
on:
push:
create:
tags: [ master ]
workflow_dispatch:
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/ros
jobs:
build:
runs-on: ubuntu-latest
steps:
-
name: Checkout
uses: actions/checkout@v3
- name: Log in to the Container registry
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile.ros
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

26
Dockerfile.ros Normal file
View file

@ -0,0 +1,26 @@
FROM ros:noetic-ros-core-focal
RUN mkdir /source
ARG DEBIAN_FRONTEND=noninteractive
RUN rm -f /etc/apt/apt.conf.d/docker-clean; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache
RUN --mount=type=cache,target=/var/cache/apt --mount=type=cache,target=/var/lib/apt \
apt update && apt-get install --no-install-recommends -y \
build-essential \
udev usbutils \
libtool \
libeigen3-dev \
git libusb-dev libusb-1.0-0-dev \
ros-noetic-tf
SHELL ["/bin/bash", "-c"]
RUN --mount=type=bind,target=/source,source=.,rw --mount=type=cache,target=/build/libsurvive,id=build-survive \
mkdir -p /build/libsurvive && \
source "/opt/ros/noetic/setup.bash" && \
cd /build/libsurvive && cmake -DCMAKE_INSTALL_PREFIX=/opt/ros/noetic -DCMAKE_BUILD_TYPE=Release /source && make -j4 install
RUN mkdir -p /root/.config
ENTRYPOINT ["./ros_entrypoint.sh", "rosrun", "survive_publisher", "node"]
CMD ["_v:=100"]