Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Tecnologia industrial

Otimize Implantações com Builds Multi-Stage de Containers

Sistemas tornam-se rapidamente muito grandes quando você os entrega completos. Isso inclui o ambiente de build e, frequentemente, o de build e teste. Mesmo que a extração dos arquivos a serem entregues não seja um problema, o processo é demorado.

Containers oferecem a possibilidade de automatizar isso.

Aqui você tem a opção de definir múltiplos containers em um único arquivo. Um site criado em JavaScript e construído com Node.js é um bom exemplo.

Exemplo:

O sistema completo como container resulta em um total superior a 600 MB, embora apenas 22 MB (servidor web + site) sejam necessários. Além disso, há um risco de segurança para o sistema porque há software presente que não é necessário para a operação produtiva. A solução aqui é um build multi-stage.

Em um build multi-stage, vários containers são definidos em um arquivo e, em seguida, apenas os dados necessários de um container para o outro são transmitidos.

Exemplo de Dockerfile Multi-Stage

Mantendo o exemplo do Node.js, aqui está um exemplo de build multi-stage. O primeiro container contém o Node.js como sistema de build, nele o site é criado. O segundo container contém o servidor web, que copia os dados necessários do primeiro container após o build.

## Sistema Base Stage 1
## Usa container comunitário Node.js
FROM node:8.11.3 as buildsystem

## Adiciona fonte do nosso projeto Git
COPY ./source /root/frontend

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

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

## Sistema Base Stage 2
## Usa container comunitário nginx
FROM nginx:alpine

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

## Adiciona configuração padrão para nginx
ADD default.conf /etc/nginx/conf.d/

## Publica Porta
EXPOSE 80

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

O resultado é um container pequeno que contém apenas o mais necessário. Usamos uma distribuição Linux muito pequena para o nginx com alpine.

Outra vantagem é que você pode acessar dois containers comunitários prontos e, portanto, não tem trabalho para criá-los e mantê-los. Para atualizações do sistema, os containers comunitários são simplesmente substituídos regularmente. Tudo isso pode ser maravilhosamente automatizado em um pipeline com GitLab (ou outras ferramentas).

Tecnologia industrial

  1. Construindo Confiança com Líderes de Negócio: Escolhendo os Serviços de Nuvem Certos
  2. Dominando Multiplicação e Divisão com Notação Científica
  3. Indústria 4.0: Perguntas e Respostas com Verena Majuntke da Bosch.IO sobre IoT, Automação e a Fábrica do Futuro
  4. Crie Seu Primeiro Projeto IoT com Raspberry Pi, DHT11 e ThingSpeak
  5. Microsoft Apresenta Modelo de Linguagem Recorde de 17 Bilhões de Parâmetros
  6. Roteiros Impulsionados por IA: Guia Estratégico para Empresas da Cadeia de Suprimentos
  7. Compras Inteligentes: Unindo IA com Insight Humano
  8. Guindastes de Contêineres Eficientes: Carregamento e Descarregamento de Precisão para Portos e Pátios Ferroviários
  9. Builds Eficientes de Containers ARM em Sistemas x86
  10. Otimize Implantações com Builds Multi-Stage de Containers