Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

360
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda