From 4233e753f8167f210a6c3e1d47b3900a5de6c553 Mon Sep 17 00:00:00 2001 From: James Pace Date: Tue, 7 Feb 2023 01:18:23 +0000 Subject: [PATCH] Init commit of workspace. --- .gitignore | 4 ++++ docker/Dockerfile | 49 ++++++++++++++++++++++++++++++++++++++++++ docker/entrypoint.bash | 7 ++++++ source.repos | 5 +++++ 4 files changed, 65 insertions(+) create mode 100644 .gitignore create mode 100644 docker/Dockerfile create mode 100644 docker/entrypoint.bash create mode 100644 source.repos diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fb3674e --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +build/ +install/ +log/ +src/ diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..519c598 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,49 @@ +# Copyright 2023 James Pace +# SPDX-License-Identifier: Apache-2.0 +FROM docker.io/library/ros:rolling as base + +# Set up common stuff needed in the builder and the +# deploy container. +ENV DEBIAN_FRONTEND noninteractive +RUN apt update -y && \ + apt upgrade -y && \ + rm -rf /var/lib/apt/lists/* + +# Set up user. +# Touch file in home directory so we don't get bothered first call to sudo +RUN useradd -m -G sudo -s /bin/bash -u 1000 j7s && \ + bash -c 'echo "%sudo ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/container' && \ + chmod 0440 /etc/sudoers.d/container && \ + touch /home/j7s/.sudo_as_admin_successful + +# Switch user. +USER j7s + +# Set up rosdep +RUN rosdep update + +# Compile as the builder. +FROM base AS builder + +RUN mkdir -p /home/j7s/workspace/ +COPY --chown=1000:1000 src/ /home/j7s/workspace/src +WORKDIR /home/j7s/workspace +RUN sudo apt update -y && \ + rosdep install --ignore-src --simulate --reinstall --default-yes --from-path src > deps.bash && \ + bash deps.bash && \ + sudo rm -rf /var/lib/apt/lists/* +RUN . /opt/ros/$ROS_DISTRO/setup.sh && \ + colcon build + +# Build deploy image. +FROM base AS deploy +COPY --from=builder /home/j7s/workspace/install /opt/j7s +COPY --from=builder /home/j7s/workspace/deps.bash /opt/j7s/deps.bash +RUN sudo apt update -y && \ + bash /opt/j7s/deps.bash && \ + sudo rm -rf /var/lib/apt/lists/* + +# Setup entrypoint. +COPY ./docker/entrypoint.bash /entrypoint.bash +ENTRYPOINT ["/entrypoint.bash"] +CMD ["bash"] diff --git a/docker/entrypoint.bash b/docker/entrypoint.bash new file mode 100644 index 0000000..3d0ba21 --- /dev/null +++ b/docker/entrypoint.bash @@ -0,0 +1,7 @@ +#!/bin/bash +set -e + +source /opt/ros/rolling/setup.bash +source /opt/j7s/local_setup.bash + +exec "$@" diff --git a/source.repos b/source.repos new file mode 100644 index 0000000..6af7a6d --- /dev/null +++ b/source.repos @@ -0,0 +1,5 @@ +repositories: + j7s-simple: + type: git + url: ssh://git.jpace121.net:2222/tests/j7s-simple + version: master