Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Tecnología Industrial

Construcciones de varias etapas con contenedor

Los sistemas se vuelven muy grandes rápidamente cuando los envía completos. Esto incluye la compilación y, a menudo, el entorno de compilación y prueba. Incluso si la extracción de los archivos a enviar no es un problema, lleva mucho tiempo.

Los contenedores ofrecen la posibilidad de hacer esto automáticamente.

Aquí tiene la opción de definir varios contenedores en un archivo. Un sitio web creado en JavaScript y compilado con Node.js es un buen ejemplo.

Ejemplo:

Node.js:~ 400 MB – 600 MB
Servidor web nginx:~ 20 Mbyte
Sitio web:~ 2 MB

Todo el sistema como contenedor da como resultado un total de más de 600 Mbyte, aunque solo se necesitan 22 Mbyte (servidor web + sitio web). Además, existe un riesgo de seguridad para el sistema porque está presente un software que no es necesario para una operación productiva. Una solución aquí es una construcción de varias etapas.

En una compilación de varias etapas, se definen varios contenedores en un archivo y luego solo se transmiten los datos necesarios de un contenedor a otro.

Ejemplo de dockerfile de varias etapas

Para continuar con Node.js, aquí hay un ejemplo de compilación de varias etapas. El primer contenedor contiene Node.js como sistema de compilación, en él se crea el sitio web. El segundo contenedor contiene el servidor web, que copia los datos necesarios del primer contenedor después de la compilación.

## Base System Stage 1
## Use community Node.js container
FROM node:8.11.3 as buildsystem

## Add source from our Git project
COPY ./source /root/frontend

## Build frontend with Nodejs
WORKDIR /root/frontend/
RUN npm install \
&& npm run build

#####################################################################
#####################################################################

## Base System Stage 2
## Use community nginx container
FROM nginx:alpine 

## Copy build from stage 1
RUN mkdir -p /var/www/html/<MyApp>
COPY --from=buildsystem /root/frontend/dist/ /var/www/html/<MyApp>/

## Add default config for nginx
ADD default.conf /etc/nginx/conf.d/

## Publish Port
EXPOSE 80

## Start nginx
CMD ["nginx", "-g", "daemon off;"]

El resultado es un pequeño contenedor que contiene solo lo más necesario. Usamos una distribución de Linux muy pequeña para nginx con alpine.

Otra ventaja es que puede acceder a dos contenedores comunitarios listos para usar y, por lo tanto, no tiene trabajo para crearlos y mantenerlos. Para las actualizaciones del sistema, los contenedores comunitarios simplemente se reemplazan regularmente. Todo se puede automatizar maravillosamente en una canalización con GitLab (u otras herramientas).


Tecnología Industrial

  1. Elija sabiamente sus servicios en la nube para generar confianza con los líderes empresariales
  2. Aritmética con notación científica
  3. Preguntas y respuestas con un arquitecto de soluciones de Industria 4.0
  4. Cree su primer IOT con una Raspberry Pi, un sensor DHT11 y Thingspeak.
  5. Microsoft crea el modelo de generación de idiomas más grande con 17 mil millones de parámetros
  6. Cómo las empresas de la cadena de suministro pueden crear hojas de ruta con IA
  7. El aprovisionamiento inteligente equilibra la IA con HI
  8. Grúas para contenedores
  9. Construcciones de contenedores para brazo en x86
  10. Construcciones de varias etapas con contenedor
  11. Node-Red con sugerencias de Docker y mejores prácticas