Public | Automated Build

Last pushed: a year ago
Short Description
Sigym4 SDK for Linux x86_64
Full Description

Sigym4

Sistema de construccion de imagenes docker y paquetes APK para
desarrollar y desplegar modulos de sigym4.

Imagenes basadas en Alpine Linux ya que:

  • usa musl en vez de glibc. Esto lo necesitamos para poder construir
    binarios estaticos que se puedan distribuir a cualquier distro linux de la misma
    arquitectura con kernel >= 2.6.
  • es ligero (imagen minima 5Mb vs unos 200M la de ubuntu), sencillo,
    contiene versiones recientes de librerias y es amigable crear paquetes
    customizados (ver directorio aports para ejemplos)

El punto de entrada para construir cosas es el script build que hay
en este mismo directorio. LLamarlo sin argumentos para ver la ayuda.

Setup inicial

  1. Instalar docker

    apt-get install docker # o lo que sea
    
  2. Construir paquetes de dependencias

    Normalmente no hace falta hacerlo salvo que tengamos que actualizar
    alguno. En este caso saltar directamente al siguiente paso.

    Los paquetes creados se suben a un repositorio en S3 del que
    tiran el resto de las imagenes que los necesiten ya que construir
    algunas de las dependencias tarda la vida.

    Las construimos nosotros en vez de usar oficiales por diversos motivos:

    • ghc:

    • libecwj2:

      • Usamos version antigua parcheada para poderse construir en un sistema moderno
        ya que es la ultima version que se distribuye bajo GPL. No hay paquetes oficiales.
    • mapnik:

      • Necesita parches para poderse enlazar estaticamente con plugins.
      • Necesita parches al plugin de gdal para poder pasarlse un puntero a GDALDataset
        en memoria como parametro en vez de tener que crearlo en disco.
    • el resto:

      • Parches para habilitar o facilitar el enlace estatico
    1. Construir los APKs (ojo: tarda la vida, dejarlo haciendo por la noche o irse a comer,
      incluso a casa, si ordenador antiguo)

      ./build apk ghc -r
      ./build apk mapnik -R
      
    2. Subirlos a S3 para que se puedan descargarlos las imagenes que los necesiten

      ./build sync_s3
      
  3. Construir la imagen con la mayor parte de las dependencias instaladas/construidas.

    Normalmente no es necesario hacerlo ya que esta en dockerhub. Los comandos que la
    necesiten la descargaran automaticamente si no esta en local. Se puede descargar
    manualmente haciendo:

      docker pull meteogrid/sigym4-sdk-linux-x86_64
    

    Si se desea construir se hace asi:

     ./build sdk
    

Uso basico

Abrir un shell en un contendedor con la imagen

  ./build shell
Docker Pull Command
Owner
meteogrid
Source Repository