Fast, reproducible, and portable docker containers containing C++ compilers, tools and libraries for C++ usable for continuous integration and as base for eclipse.
Docker enables a great way for fast, small, reproducible, and portable software development environments.
The advantages are:
- Fast build and execution compared to virtual machines
- Portability: Same environment on different machines, platforms, and operating systems
- Reproducible behaviors
- Economical consumption of resources
- Identical environment for development IDE and continuous integration
- Easy provisioning of images
Docker images
Download and install the latest Eclipse IDE for C/C Developers. Make sure you've followed the steps described on the Using Containers page to download the Docker image. Open the Project Properties by right clicking Project. Select C/C Build. Eclipse Che is a next-generation cloud IDE and workspace server that can run anywhere Docker runs. Sudo docker build -t='orion.base'. The command needs to be run in the folder containing the Dockerfile The default Dockerfile provided by Orion adds support to the terminal for: git, vi, grunt, and node.js capabilities. If you want to provide your users additional capabilities via the terminal, then you need to add these to your Dockerfile. Docker and Eclipse.
Each directory correspond to an environment module. They can stick together asa chain:
module1
- module2
- module3
- ..
The image
module1-module2-module3
is using the image module1-module2
asbase, which will be set using the build-time variable BASE_IMAGE
. Forexample the image ubuntu-16.04-cmake-3.12
will be build withPlease find a list of available images at images.yml.The images in the list will be build automatically withJenkinsand pushed to DockerHub.
The docker images can be pulled with
Eclipse IDE
Eclipse IDE for C++ development
A ready-for-action eclipse IDE with
- CMake
- GCC
- conan.io
- docker-engine
installed can be started by
or using docker-compose by
The mount of the X11 socket file (/tmp/.X11-unix) and the definition of theenvironment variable
DISPLAY
induce the application within the container tosend the rendering instructions to the host X server. To allow the container touse the host display, the command xhost +local:
must be executed on the hostbefore starting the container. The privileged mode is needed for debugging withgdb.Eclipse IDE Photon
Eclipse Photon can be started with the latest GCC compiler by
Eclipse IDE for CUDA development
First of all nvidia-docker version 2must be installed and the runtime attribute must be set to
nvidia
, that thecontainer get access to the host GPU card. The nvidia runtime attribute iscurrently only available at docker-compose version 2.3.For CUDA development the NVIDIA IDEnsight is highlyrecommended, because it provides special support for code editing, debugging,and profiling. The version of nsight is not adjustable, as it depends to theversion of the cuda module.
Eclipse IDE for embedded development
Eclipse Docker Container
To use the Eclipse CDT Arduinoplugin simplychoose the eclipse-arduino module and bind the serial port of your Arduinoconnection (here: /dev/ttyACM0):
Persistent storage
The data in the container can be made persistent by using a dockervolume
home
for the home directory/home/user
.Eclipse Ide Dockers
Project-assigned development environment
![Docker Docker](/uploads/1/3/7/4/137430204/967943805.jpg)
The docker development environment can be directly stored within the sourcecode repository and is able to bind the working directory of the source codeinto the development container. Therefore, the user in the container must bethe owner of the source code working directory on the host. The user in thecontainer can be set with the environment variables
USER_ID
, GROUP_ID
,USER_NAME
, and GROUP_NAME
. In the following example the docker-compose fileis stored in the root directory of a git repository. Starting docker-composeup -d
in the root directory the current directory .
will be bound to/home/${USER_NAME}/git/${PROJECT}
. It is recommended to set the variables inan extra file .env
, which is not controlled by the source control management,so that the docker-compose file must not be changed.The
.env
-file can be generated by![Docker Docker](/uploads/1/3/7/4/137430204/631331554.jpg)
Docker Plugin For Eclipse
Jenkins build container
A declarative Jenkinsfile can look like Tall bathroom cabinet tower.