Paso 4: Crear nuestras imágenes de Docker
Permite crear una imagen que se basa en la distribución de Raspbian Jessie. A pesar de que la Pi se configura con Arch Linux, podemos utilizar cualquier otro OS de frambuesa como imagen base para nuestro servicio. Voy a seguir las instrucciones de Desarrollo integrado de la investigación de Adafuit.
La idea detrás de Docker es crear imágenes que pueden reproducirse en cualquier momento. Puesto que el proyecto utiliza la investigación, permite crear una imagen de la investigación por el Raspberry Pi. Más adelante vamos a crear el programa en una imagen diferente de anclaje que se basará en esta imagen.
Imagen JS de nodo
Crear un nuevo directorio llamado "rpi-nodejs" y cambiar en él. Ahora cree un archivo denominado "Dockerfile" con el siguiente contenido:
Docker debe ser instruidos para leer este Dockerfile y crear una imagen. Esto se hace con el siguiente comando:
Esto construirá una imagen de investigación basada en el contenido de la actual "." directorio. La imagen se llamará "rpi-investigación"
Estas instrucciones son las mismas que la documentación de Adafruit con algunos atajos. En lugar de usar curl en el repositorio de Adafruit, yo simplemente agregado al sources.list. Y por último, como imágenes de Docker ejecutan como root, la imagen no es necesario el proyecto GPIO-Admin de ser parte de la imagen. Puede ver esta imagen en tu repositorio local de la imagen de anclaje:
Imagen de aplicación
Ahora vamos a crear una imagen que utiliza nuestra nueva imagen de NodeJS para nuestra aplicación. Continuando con las instrucciones necesitamos instalar y paquete de MNP y añadir nuestro código fuente.
Volver al directorio padre de "rpi-nodejs" y crear un nuevo directorio llamado "rpi-onoff" y cambiar en él. Primero crea un nuevo archivo llamado "test.js" con el siguiente contenido:
Y ahora creamos otro archivo llamado "Dockerfile" con el siguiente contenido:
La primera línea de la Dockerfile afirma que esta imagen se basará en nuestra imagen recién creada rpi-nodejs. Este es un ejemplo de reutilización de imágenes de base común para diferentes proyectos. La ventaja es que todas las imágenes de la aplicación/servicio se basan en el mismo padre.
La línea de ejecución traerá en la dependencia para onoff mediante el gestor de paquetes MNP.
Finalmente se crea un directorio en la imagen y la escritura test.js se copia en él. El punto de entrada dice Docker que cuando la imagen es ejecutada y hecha en un recipiente para ejecutar el script test.js con nodo.
Para compilar y ejecutar esta imagen:
Se debe especificar la opción de "privilegiada" porque esta imagen requiere acceso de lectura/escritura a los pines GPIO. Ahora que la aplicación se está ejecutando, presione el botón y ver la vuelta de LED de encendido y apagado.