Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

365
Views
Docker C++ desarrollo y CI

Quiero usar la ventana acoplable para dockerizar mis proyectos de C++. Internet tiene recomendaciones de que es mejor usar 2 contenedores: desarrollo y producto. Pero no entiendo cómo necesito crear un contenedor de desarrollo para admitir la integración continua.

Las preguntas son las siguientes:

  • si es CI, ¿cuándo se debe compilar el proyecto en docker build o docker run ?
  • Si está en la compilación de la ventana acoplable, ¿cómo obtengo el proyecto compilado del contenedor de desarrollo para colocarlo en el contenedor del producto? Porque en la etapa de compilación de la ventana acoplable no puede conectar VOLÚMENES.
  • ¿Existen de todos modos las recetas para el uso de la ventana acoplable en el desarrollo de C ++?

Tal vez no estoy en la dirección correcta y, por ejemplo, ¿un contenedor de desarrollo debería incluir eclipse? Aunque ¿qué pasa entonces con CI? Todos los tutoriales que encuentro suelen hacer referencia a PHP, que sin etapa de compilación.

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Tienes diferentes patrones con Docker y C++.

Compile proyectos con imágenes Docker listas

Esto incluye el uso de imágenes de la ventana acoplable con el compilador deseado y las bibliotecas de terceros (creadas con la compilación de la ventana acoplable ) y la compilación de su proyecto con el comando de ejecución de la ventana acoplable . Esta suele ser la forma más utilizada para tratar con entornos de CI.

Pro:

  • Puede montar la carpeta de su proyecto en el contenedor y dejar que haga el trabajo. Al final, tiene sus archivos binarios en su sistema host.
  • La imagen utilizada para la prueba puede ser la misma que para la producción (dependiendo del proyecto, por supuesto)
  • Las imágenes de Docker son más pequeñas (siempre que mantenga su código en un volumen de montaje)
  • Paquete e imágenes base fáciles de actualizar (por ejemplo, de Ubuntu 16.04 a 16.10, etc.)

Contras:

  • Cada desarrollador / control de calidad debe configurar el lanzamiento del contenedor docker por sí mismo (use docker-compose para el rescate)

Cree imágenes de Docker en todo el proyecto

En este caso, encapsula todos los requisitos y el código en una imagen acoplable, lo que significa que debe reconstruirla cada vez que cambie su código, eliminar los contenedores en ejecución anteriores, descargar la nueva imagen en su servidor de CI, etc.

Ventajas:

  • Imágenes muy especializadas: una imagen acoplable -> una instantánea de su código
  • Más rápido para compartir con control de calidad

Contras:

  • Enormes imágenes de Docker
  • Se debe activar una compilación de Docker cada vez que cambia su código, lo que ejecuta la compilación, etc. -> lento
  • Más complicado de actualizar/demasiadas capas

Recuerda que Docker tiene una cierta cantidad de capas máximas permitidas (supongo que todavía son 127), cuantas más capas tengas, más grande será la imagen.

Considere construcciones de varias etapas

Las compilaciones de etapas múltiples son una adición reciente a Docker y pueden acelerar el proceso de compilación al crear una imagen en caché que contiene todas las herramientas necesarias para producir la imagen final.

Conclusión

Definitivamente optaría por la primera solución, porque le brinda más flexibilidad y puede mantener sus cambios en diferentes entornos, siempre que use Docker Volumes, especialmente si usa algunos administradores de paquetes como conan o vcpkg.

Para ver un ejemplo de imagen de Docker/C++, siguiendo la solución n.º 1, consulte: una de mis imágenes de Docker

Acerca de los lanzamientos, puede crear su imagen acoplable usando COPY o ADD en un Dockerfile extremadamente simple con solo las dependencias mínimas requeridas por su proyecto (lo mejor se logra compilando estáticamente su código)

about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!