All Projects → conan-io → Conan Docker Tools

conan-io / Conan Docker Tools

Licence: mit
Some tools for automated package generation

Projects that are alternatives of or similar to Conan Docker Tools

Ngx Fastdfs
nginx + lua +fastdfs Real-time dynamic compression of distributed pictures
Stars: ✭ 146 (-9.32%)
Mutual labels:  docker-image
Docker Tensorflow Builder
Docker images to compile TensorFlow yourself.
Stars: ✭ 155 (-3.73%)
Mutual labels:  docker-image
Nginx
NGINX Accelerated! This is a Docker image that creates a high performance (FAST!), optimized image for NGINX for use with Redis and PHP-FMP. Deliver sites and applications with performance, reliability, security, and scale. This NGINX server offers advanced performance, web and mobile acceleration, security controls, application monitoring, and management.
Stars: ✭ 157 (-2.48%)
Mutual labels:  docker-image
Docker Github Pages
🐳 Alpine Docker Image for GitHub Pages and Jekyll powered sites
Stars: ✭ 147 (-8.7%)
Mutual labels:  docker-image
Data Science Stack Cookiecutter
🐳📊🤓Cookiecutter template to launch an awesome dockerized Data Science toolstack (incl. Jupyster, Superset, Postgres, Minio, AirFlow & API Star)
Stars: ✭ 153 (-4.97%)
Mutual labels:  docker-image
Drone Ssh
Drone plugin for executing remote ssh commands
Stars: ✭ 155 (-3.73%)
Mutual labels:  docker-image
Dockerfiles
Phalcon Dockerfiles used for internal purposes.
Stars: ✭ 145 (-9.94%)
Mutual labels:  docker-image
Bitnami Docker Magento
Bitnami Docker Image for Magento
Stars: ✭ 159 (-1.24%)
Mutual labels:  docker-image
Docker Elasticsearch Alpine
Alpine Linux based Elasticsearch Docker Image
Stars: ✭ 154 (-4.35%)
Mutual labels:  docker-image
Dockerfiles
Dockerfiles for various pandoc images
Stars: ✭ 158 (-1.86%)
Mutual labels:  docker-image
Portauthority
API that leverages Clair to scan Docker Registries and Kubernetes Clusters for vulnerabilities
Stars: ✭ 148 (-8.07%)
Mutual labels:  docker-image
Modern Deep Learning Docker
Modern Deep Learning Docker Image
Stars: ✭ 153 (-4.97%)
Mutual labels:  docker-image
Larakube
Laravel app deployment for auto scaled Kubernetes cluster
Stars: ✭ 157 (-2.48%)
Mutual labels:  docker-image
Docker Erlang Otp
the Official Erlang OTP image on Docker Hub
Stars: ✭ 147 (-8.7%)
Mutual labels:  docker-image
Laravel
Docker image to run Laravel 5.x projects
Stars: ✭ 158 (-1.86%)
Mutual labels:  docker-image
Verdaccio
📦🔐 A lightweight Node.js private proxy registry
Stars: ✭ 12,667 (+7767.7%)
Mutual labels:  docker-image
Docker Phoenix
A dockerized Phoenix development and runtime environment.
Stars: ✭ 152 (-5.59%)
Mutual labels:  docker-image
Workspace Images
Ready to use docker images for Gitpod workspaces
Stars: ✭ 161 (+0%)
Mutual labels:  docker-image
Elk Docker
Elasticsearch, Logstash, Kibana (ELK) Docker image
Stars: ✭ 1,973 (+1125.47%)
Mutual labels:  docker-image
Bmw Tensorflow Inference Api Cpu
This is a repository for an object detection inference API using the Tensorflow framework.
Stars: ✭ 158 (-1.86%)
Mutual labels:  docker-image

Build Status

Conan Docker Tools

logo

Dockerfiles for different gcc compiler versions. You can use these images directly in your project or with the conan-package-tools project.

⚠️ Warning: The images listed below are intended for generating open-source library packages and we cannot guarantee any kind of stability. We strongly recommend using your own generated images for production environments taking the dockerfiles in this repository as a reference.

The images are uploaded to Docker Hub:

GCC

Version Arch Status, Life cycle
conanio/gcc46: gcc 4.6 x86_64 Deprecated
conanio/gcc48: gcc 4.8 x86_64 Deprecated
conanio/gcc48-x86: gcc 4.8 x86 Deprecated
conanio/gcc49: gcc 4.9 x86_64 Supported
conanio/gcc49-x86: gcc 4.9 x86 Deprecated
conanio/gcc49-armv7: gcc 4.9 armv7 Supported
conanio/gcc49-armv7hf: gcc 4.9 armv7hf Supported
conanio/gcc52: gcc 5.2 x86_64 Deprecated
conanio/gcc53: gcc 5.3 x86_64 Deprecated
conanio/gcc54: gcc 5.4 x86_64 Deprecated
conanio/gcc63: gcc 6.3 x86_64 Deprecated
conanio/gcc64: gcc 6.4 x86_64 Deprecated
conanio/gcc72: gcc 7.2 x86_64 Deprecated

GCC>=5 is ABI compatible for minor versions. To solve multiple minors, there are generic images by major version. If you are interested to understand the motivation, read this issue.

Version Arch Status, Life cycle
conanio/gcc5: gcc 5 x86_64 Supported
conanio/gcc5-x86: gcc 5 x86 Deprecated
conanio/gcc5-armv7: gcc 5 armv7 Supported
conanio/gcc5-armv7hf: gcc 5 armv7hf Supported
conanio/gcc6: gcc 6 x86_64 Supported
conanio/gcc6-x86: gcc 6 x86 Deprecated
conanio/gcc6-armv7: gcc 6 armv7 Supported
conanio/gcc6-armv7hf: gcc 6 armv7hf Supported
conanio/gcc7-x86: gcc 7 x86 Deprecated
conanio/gcc7: gcc 7 x86_64 Supported
conanio/gcc7-centos6: gcc 7 x86_64 Deprecated
conanio/gcc7-centos6-x86: gcc 7 x86 Deprecated
conanio/gcc7-mingw: gcc 7 x86_64 Supported
conanio/gcc7-armv7: gcc 7 armv7 Supported
conanio/gcc7-armv7hf: gcc 7 armv7hf Supported
conanio/gcc8-x86: gcc 8 x86 Deprecated
conanio/gcc8: gcc 8 x86_64 Supported
conanio/gcc8-armv7: gcc 8 armv7 Supported
conanio/gcc8-armv7hf: gcc 8 armv7hf Supported
conanio/gcc9-x86: gcc 9 x86 Deprecated
conanio/gcc9: gcc 9 x86_64 Supported
conanio/gcc9-armv7: gcc 9 armv7 Supported
conanio/gcc9-armv7hf: gcc 9 armv7hf Supported
conanio/gcc10: gcc 10 x86_64 Supported
conanio/gcc10-armv7: gcc 10 armv7 Supported
conanio/gcc10-armv7hf: gcc 10 armv7hf Supported

Clang

Version Arch Status, Life cycle
- conanio/clang38: clang 3.8 x86_64 Deprecated
- conanio/clang39-x86: clang 3.9 x86 Deprecated
- conanio/clang39: clang 3.9 x86_64 Supported
- conanio/clang40-x86: clang 4.0 x86 Deprecated
- conanio/clang40: clang 4.0 x86_64 Supported
- conanio/clang50-x86: clang 5.0 x86 Deprecated
- conanio/clang50: clang 5.0 x86_64 Supported
- conanio/clang60-x86: clang 6.0 x86 Deprecated
- conanio/clang60: clang 6.0 x86_64 Supported
- conanio/clang7-x86: clang 7 x86 Deprecated
- conanio/clang7: clang 7 x86_64 Supported
- conanio/clang8-x86: clang 8 x86 Deprecated
- conanio/clang8: clang 8 x86_64 Supported
- conanio/clang9-x86: clang 9 x86 Deprecated
- conanio/clang9: clang 9 x86_64 Supported
- conanio/clang10: clang 10 x86_64 Supported

Visual Studio

We can not re-distribute Windows docker images, since Visual Studio Build Tools is licensed as supplemental license for Visual Studio. To have more information about: https://github.com/Microsoft/vs-dockerfiles#samples However, you can download the Docker recipe and build.

Android

Version Arch Status, Life cycle
- conanio/android-clang8: Android clang 3.8 x86_64 Supported
- conanio/android-clang8-x86: Android clang 3.8 x86 Deprecated
- conanio/android-clang8-armv7: Android clang 3.8 x86 Supported
- conanio/android-clang8-armv8: Android clang 3.8 x86 Supported

Conan Server

Conan Docker Tools provides an image version with only Conan Server installed, very useful for the cases it is necessary to run a server without touching the host.

Version Arch Status, Life cycle
- conanio/conan_server ANY Supported

Conan Installer

conanio/gcc7-centos6 is a special image version based on CentOS 6, GCC 7 and glibc 2.12 (very old glibc version). This is intended to build executables that run almost on any Linux because glibc guarantees backward compatibility. You can use this image to build your Conan build tools packages (build_requires). This image is ONLY able to build x86_64 binaries.

conanio/gcc7-centos6-x86 is a special image version based on CentOS 6 i386, GCC 7 and glibc 2.12 (very old glibc version). This is intended to build executables that run almost on any Linux because glibc guarantees backward compatibility. You can use this image to build your Conan build tools packages (build_requires). This image is ONLY able to build x86 binaries.

** WARNING ** CentOS 6 reached EOL and won't be longer maintained. Thus, both conanio/gcc7-centos6 and conanio/gcc7-centos6-x86 are still available for download, but no new version will be released.

Use the images to test your C++ project in Travis CI

These Docker images can be used to build your project using the Travis CI CI service, even if you are not using Conan. It's always recommended to build and test your C/C++ projects in a Docker image running in travis:

.travis.yml

    os: linux
    services:
       - docker
    sudo: required
    language: python
    env:
      matrix:
        - DOCKER_IMAGE=conanio/gcc8 # GCC 8.x
        - DOCKER_IMAGE=conanio/clang7 # Clang 7

    matrix:
       include:
           - os: osx
             osx_image: xcode11.3 # Apple-Clang 11.0
             language: generic
             env:

    before_install:
      - ./.travis/before_install.sh

    install:
      - ./.travis/install.sh

    script:
      - ./.travis/run.sh


.travis/run_project_build.sh. Change it according your project build needed commands:

    #!/bin/bash

    rm -rf build && mkdir -p build && cd build
    conan install ../ --build=missing
    cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ..
    cmake --build .

Jenkins Slave

If you use Jenkins to build your packages and also you use Jenkins Slave to run each docker container, you could use our Docker images prepared for Jenkins Slave. Those images run the script jenkins-slave.sh, which starts the slave during the container entrypoint.

GCC

Version Arch Status, Life cycle
conanio/gcc46-jnlp-slave: gcc 4.6 x86_64 Supported
conanio/gcc46-jnlp-slave-x86: gcc 4.6 x86 Supported
conanio/gcc48-jnlp-slave: gcc 4.8 x86_64 Supported
conanio/gcc48-jnlp-slave-x86: gcc 4.8 x86 Supported
conanio/gcc49-jnlp-slave: gcc 4.9 x86_64 Supported
conanio/gcc49-jnlp-slave-x86: gcc 4.9 x86 Supported
conanio/gcc5-jnlp-slave: gcc 5 x86_64 Supported
conanio/gcc5-jnlp-slave-x86: gcc 5 x86 Supported
conanio/gcc6-jnlp-slave: gcc 6 x86_64 Supported
conanio/gcc6-jnlp-slave-x86: gcc 6 x86 Supported
conanio/gcc7-jnlp-slave: gcc 7 x86_64 Supported
conanio/gcc7-jnlp-slave-x86: gcc 7 x86 Supported
conanio/gcc8-jnlp-slave: gcc 8 x86_64 Supported
conanio/gcc8-jnlp-slave-x86: gcc 8 x86 Supported
conanio/gcc9-jnlp-slave: gcc 9 x86_64 Supported
conanio/gcc9-jnlp-slave-x86: gcc 9 x86 Supported
conanio/gcc10-jnlp-slave: gcc 10 x86_64 Supported
conanio/gcc7-jnlp-slave-centos6: gcc 7 x86_64 Supported
conanio/gcc7-jnlp-slave-centos6-x86: gcc 7 x86 Supported

Clang

Version Arch Status, Life cycle
- conanio/clang38-jnlp-slave: clang 3.8 x86_64 Supported
- conanio/clang39-jnlp-slave-x86: clang 3.9 x86 Supported
- conanio/clang39-jnlp-slave: clang 3.9 x86_64 Supported
- conanio/clang40-jnlp-slave-x86: clang 4.0 x86 Supported
- conanio/clang40-jnlp-slave: clang 4.0 x86_64 Supported
- conanio/clang50-jnlp-slave-x86: clang 5.0 x86 Supported
- conanio/clang50-jnlp-slave: clang 5.0 x86_64 Supported
- conanio/clang60-jnlp-slave-x86: clang 6.0 x86 Supported
- conanio/clang60-jnlp-slave: clang 6.0 x86_64 Supported
- conanio/clang7-jnlp-slave-x86: clang 7 x86 Supported
- conanio/clang7-jnlp-slave: clang 7 x86_64 Supported
- conanio/clang8-jnlp-slave-x86: clang 8 x86 Supported
- conanio/clang8-jnlp-slave: clang 8 x86_64 Supported
- conanio/clang8-jnlp-slave-x86: clang 9 x86 Supported
- conanio/clang8-jnlp-slave: clang 9 x86_64 Supported
- conanio/clang8-jnlp-slave: clang 10 x86_64 Supported

Use the images locally

You can also use the images locally to build or test packages, this is an example command:

docker run -v/tmp/.conan:/home/conan/.conan conanio/gcc63 bash -c "conan install lz4/[email protected]/stable --build missing"

This command is sharing /tmp/.conan as a shared folder with the conan home, so the Boost package will be built there. You can change the directory or execute any other command that works for your needs.

If you are familiarized with Docker compose, also it's possible to start a new container by:

docker-compose run -v/tmp/.conan:/home/conan/.conan gcc63 bash -c "conan install lz4/[email protected]/stable --build missing"

Build, Test and Deploy

Introduce

The images are already built and uploaded to "conanio(https://hub.docker.com/r/conanio/)" dockerhub account, If you want to build your own images you can do it by:

$ python build.py

The script build.py will build, test and deploy your Docker image. You can configure all stages by environment variables listed below.

Also, you can build only a version:

E.g Build and test only a image with Conan and gcc-6

$ CONAN_GCC_VERSIONS="6" python build.py

E.g Build and test only the images with Conan and clang-8, clang-9

$ CONAN_CLANG_VERSIONS="8,9" python build.py

E.g Build and test only the images with Conan and Visual Studio 14.0 (It ONLY works on Windows).

$ CONAN_VISUAL_VERSIONS="14.0" python build.py

The stages that compose the script will be described below:

Build

The first stage collect all compiler versions listed in CONAN_GCC_VERSIONS for Gcc, in CONAN_CLANG_VERSIONS for Clang and CONAN_VISUAL_VERSIONS for Visual Studio. If you do not set any compiler version, the script will execute all supported versions for Gcc and Clang.

You can configure only a compiler version or a list, by these variables. If you skipped a compiler list, the build will not be executed for that compiler.

The image tag can be configured by DOCKER_BUILD_TAG. Build default will used latest.

Each image created on this stage will be tagged as DOCKER_USERNAME/conan_compiler_version.

The image will not be removed after build.

Test

The second stage runs the new image created and builds the Conan package gtest/1.8.1. The same build variables, as CONAN_GCC_VERSIONS, CONAN_CLANG_VERSIONS and CONAN_VISUAL_VERSIONS are used to select the compiler and version.

All tests build the package gtest/1.8.1, for x86 and x86_64.

Gcc images use libstdc++. Clang images use libc++ and libstdc++. Visual Studio images use MD for runtime.

The packages created on test, are not uploaded to Conan server, Are just to validate the image.

Deploy

The final stage pushes the image to docker server (hub.docker). DOCKER_UPLOAD should be true.

The login uses DOCKER_LOGIN_USERNAME and DOCKER_PASSWORD to authenticate.

E.g Upload Docker images to Docker hub, after build and test:

$ DOCKER_USERNAME="conanio" DOCKER_PASSWORD="conan" DOCKER_UPLOAD="TRUE" python build.py

Environment configuration

You can also use environment variables to change the behavior of Conan Docker Tools.

This is especially useful for CI integration.

Build and Test variables:

  • GCC_VERSIONS: GCC versions to build, test and deploy, comma separated, e.g. "4.6,4.8,4.9,5.2,5.3,5.4,6.2.6.3"
  • CLANG_VERSIONS: Clang versions to build, test and deploy, comma separated, e.g. "3.8,3.9,4.0"
  • VISUAL_VERSIONS: Visual Studio versions to build, test and deploy, comma separated, e.g. "14,15"
  • DOCKER_BUILD_TAG: Docker image tag, e.g "latest", "0.28.1"
  • SUDO_COMMAND: Sudo command used on Linux distros, e.g. "sudo"
  • DOCKER_CACHE: Allow to cache docker layers during the build, to speed up local testing
  • DOCKER_CROSS: Cross-compiling image prefix, currently only "android" is supported

Upload related variables:

  • DOCKER_USERNAME: Your Docker username to authenticate in Docker server.
  • DOCKER_PASSWORD: Your Docker password to authenticate in Docker server
  • DOCKER_UPLOAD: If attributed to true, it will upload the generated docker image, positive words are accepted, e.g "True", "1", "Yes". Default "False"
  • BUILD_CONAN_SERVER_IMAGE: If attributest to true, it will build and upload an image with the conan_server
  • DOCKER_UPLOAD_ONLY_WHEN_STABLE: Only upload only when is master branch.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].