infrahelpers/cpppythonfedora
Temporary until newest Fedora work
189
That project produces container (e.g., Docker) images, hosted on a dedicated public Docker Cloud site. Those container images are intended to bring Linux-based ready-to-use environment for C++ and Python developers. Both programming languages are indeed related, as Python is built on top of C++ (e.g., a few Python modules need to be compiled with C++). Some basic support for R is also provided.
The supported Linux distributions are CentOS 8, CentOS 7, Fedora 35, Fedora 34, (to come in April 2022) Ubuntu 22.04 LTS (Jammy Jellyfish), Ubuntu 20.04 LTS (Focal Fossa), Ubuntu 18.04 LTS (Bionic Beaver), Ubuntu 16.04 LTS (Xenial Xerus), Debian 11 (Bullseye) and Debian 10 (Buster).
Every time some changes are committed on the project's GitHub repository, the container images are automatically rebuilt and pushed onto Docker Cloud.
When some more components are needed, which may be of interest to other
C++ and Python developers, the Docker image may be amended so as to add
those extra components.
The preferred way to propose amendment of the Docker image is through
pull requests on the GitHub project.
Once the pull request has been merged, i.e., once the Dockerfile
amendment
has been
committed in GitHub,
Docker Cloud then rebuilds the corresponding container images, which become
available for every one to use.
<linux-distrib>
may be one of centos8
, centos7
,
fedora35
, fedora34
, debian11
, debian10
,
ubuntu2004
, ubuntu1804
or ubuntu1604
):$ docker pull infrahelpers/cpppython:<linux-distrib>
$ docker run --rm -v ~/.ssh/id_rsa:/home/build/.ssh/id_rsa -v ~/.ssh/id_rsa.pub:/home/build/.ssh/id_rsa.pub -it infrahelpers/cpppython:<linux-distrib>
[build@5..0 dev]$
[build@5..0 dev]$ export FULLNAME="Firstname Lastname"
[build@5..0 dev]$ export EMAIL="email@example.com"
[build@5..0 dev]$ git config --global user.name "$FULLNAME"
[build@5..0 dev]$ git config --global user.email "$EMAIL"
[build@5..0 dev]$ sed -i -e "s/Firstname Lastname/$FULLNAME/g" ~/.rpmmacros
[build@5..0 dev]$ sed -i -e "s/email@example.com/$EMAIL/g" ~/.rpmmacros
[build@5..0 dev]$ git clone https://github.com/trep/opentrep.git
Cloning into 'opentrep'...
remote: Enumerating objects: 44, done.
remote: Counting objects: 100% (44/44), done.
remote: Compressing objects: 100% (35/35), done.
Receiving objects: 100% (5813/5813), 61.53 MiB | 211.00 KiB/s, done.
remote: Total 5813 (delta 12), reused 19 (delta 8), pack-reused 5769
Resolving deltas: 100% (3665/3665), done.
[build@5..0 dev]$ cd opentrep
[build@5..0 opentrep (trunk)]$
[build@5..0 opentrep (trunk)]$ export INSTALL_BASEDIR="${HOME}/dev/deliveries" && if [ -d /usr/lib64 ]; then LIBSUFFIX=64; fi && export LIBSUFFIX_4_CMAKE="-DLIB_SUFFIX=${LIBSUFFIX}"
[build@5..0 opentrep (trunk)]$ rm -rf build && mkdir build && cd build
[build@5..0 build (trunk)]$ cmake3 -DCMAKE_INSTALL_PREFIX=${INSTALL_BASEDIR}/opentrep-latest -DCMAKE_BUILD_TYPE:STRING=Debug -DINSTALL_DOC:BOOL=OFF -DRUN_GCOV:BOOL=OFF ${LIBSUFFIX_4_CMAKE} ..
[build@5..0 build (trunk)]$ make install
[build@5..0 build (trunk)]$ ./opentrep/opentrep-indexer -t sqlite
[build@5..0 build (trunk)]$ ./opentrep/opentrep-searcher -t sqlite -q "nce sfo"
[build@5..0 build (trunk)]$ exit
The images may be customized, and pushed to Docker Cloud;
<linux-distrib>
may be one of centos8
, centos7
,
fedora35
, fedora34
, debian11
, debian10
,
ubuntu2004
, ubuntu1804
or ubuntu1604
:
$ mkdir -p ~/dev
$ cd ~/dev
$ git clone https://github.com/cpp-projects-showcase/docker-images.git cpp-docker-images
$ cd cpp-docker-images
$ vi <linux-distrib>/Dockerfile
$ docker build -t infrahelpers/cpppython:<linux-distrib> <linux-distrib>/
$ docker run --rm -v ~/.ssh/id_rsa:/home/build/.ssh/id_rsa -v ~/.ssh/id_rsa.pub:/home/build/.ssh/id_rsa.pub -it infrahelpers/cpppython:<linux-distrib>
[build@9..d cpp-projects-showcase]$ exit
$ docker push infrahelpers/cpppython:<linux-distrib>
For any of the following features, an issue may be open on GitHub:
docker pull infrahelpers/cpppythonfedora