ros-industrial / docker

ROS-Industrial docker and cloud tools
23 stars 21 forks source link

Provide build for tesseract_ros and dependencies #46

Open jdlangs opened 2 years ago

jdlangs commented 2 years ago

I saw there wasn't a way to build an image that contains a source build of tesseract for use in applications. This enables building an image from the tesseract_ros repo and all its dependencies, including tesseract, tesseract_planning, etc. The image contains a built underlay workspace in /opt/tesseract which can be used by downstream applications instead of /opt/ros/noetic.

@Levi-Armstrong, I'd be interested to get your feedback if this is useful for this repo and what changes/improvements you think could be made.

marip8 commented 2 years ago

I created a similar issue on the tesseract repository about pushing the post-CI-build docker image to some publicly accessible repository (i.e. Docker, Github, etc.) as a part of the CI process. Maybe this approach would be easier for getting or creating the Docker image (once we get it set up). This Docker file still might be nice though as a definition of what it takes to build a Docker image of tesseract in the case that someone needs to do that

jdlangs commented 2 years ago

Is there a meaningful distinction between an image built for CI vs one built directly to distribute tesseract? My main idea is it would be nice for docker hub to have an off-the-shelf image available for downstream applications. Whether that comes from a CI job or a direct Dockerfile is probably not too important.

marip8 commented 2 years ago

Is there a meaningful distinction between an image built for CI vs one built directly to distribute tesseract?

No I don't think so. We just get a docker image that can be used to distribute tesseract for free as a part of the CI process, so it would be easier and more effective to use that rather than a Dockerfile since the CI docker image would get built and updated with every change that gets merged into tesseract.

We could extend this to the other tesseract-related repositories as well. For instance, tesseract_planning, tesseract_ros, and tesseract_python could run CI off of the CI-built tesseract docker image (which should save a lot of build time), and they could push their own CI-built docker image out to a public repository for others to use.