externpro is a collection of scripts, docker-related files, and cmake that provide foundational support for any project wishing to leverage public buildpro images and third-party development packages built using externpro
optimally externpro is added to any project as a submodule to the path .devcontainer
git submodule add https://github.com/externpro/externpro .devcontainer
symbolic links can be added to point to the compose.*.[sh|yml]
file pair suitable for the project
ln -s .devcontainer/compose.bld.sh docker-compose.sh
ln -s .devcontainer/compose.bld.yml docker-compose.yml
./docker-compose.sh -h
displays a help message showing usage and options
externpro makes heavy use of cmake's ExternalProject module -- see Building External Projects with CMake 2.8 for a good overview of the module when it was first introduced
there is a legacy externpro project at smanders/externpro that creates a bundled package of several third-party projects in tar.xz releases -- smanders/externpro will eventually be phased out and archived as work is done to move these projects to build standalone and host their devel packages as github release assets
- if you're running
./docker-compose.sh
on a remote system you've connected to viassh -X
orssh -Y
the denv.sh script should automatically detect this case and will do additional configuration and populate environment variables so that X display from the running container will (hopefully) work as expected - NOTE: the
-bld
images include thexeyes
package, which can be run ($ xeyes &
) from the container to verify X11 forwarding is working as expected - TIP: if you get a "can't open display" error trying to run X applications, you may need
to change the
X11UseLocalhost
option in/etc/ssh/sshd_config
tono
(and restart sshd)