The Codest
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Indústrias
    • Fintech e Banca
    • E-commerce
    • Adtech
    • Tecnologia da saúde
    • Fabrico
    • Logística
    • Automóvel
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
  • Sobre nós
  • Serviços
    • Desenvolvimento de software
      • Desenvolvimento de front-end
      • Desenvolvimento backend
    • Staff Augmentation
      • Programadores Frontend
      • Programadores de back-end
      • Engenheiros de dados
      • Engenheiros de nuvem
      • Engenheiros de GQ
      • Outros
    • Aconselhamento
      • Auditoria e consultoria
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • A nossa equipa
  • Case Studies
  • Saber como
    • Blogue
    • Encontros
    • Webinars
    • Recursos
Carreiras Entrar em contacto
Seta para trás VOLTAR
2018-09-09
Desenvolvimento de software

COMO FAZER DOCKER LIÇÃO APRENDIDA

Dawid Polchlopek

Desde que reparei que a aplicação que preparámos se expandiu significativamente, decidi encontrar um método completamente novo para automatizar o processo do seu lançamento. Era importante para mim encontrar uma solução que permitisse ativar novas funcionalidades de forma isolada.

Introdução

A descoberta de um método mais simples de automatização de processos constituiria uma melhoria significativa do meu trabalho e do trabalho de toda a minha equipa. equipa. Pensei: "Porque não usar Docker?"

Durante a fase de preparação, criei duas configurações: uma para a aplicação front-end e outra para a API. Abaixo pode ver uma apresentação do que aprendi durante a processo de desenvolvimento.

O primeiro problema

Quero ter um repositório clonado no contentor, por isso adicionei uma chave ssh através do comando ADD no Dockerfile:

ADICIONAR ~/.ssh/testowy

E bam! O ficheiro não foi encontrado. Porquê?

Vamos supor que temos a seguinte estrutura de pastas:

docker/
|-- stuff/
| |-- test.txt
|-- Dockerfile
servidor/
|-- dados
| |-- setup.yml

Executar comando construir no fila de login e só pode adicionar ficheiros da pasta local e das suas subpastas locais, por exemplo, coisas.

Se pretender adicionar o servidor receberá uma mensagem: "incapaz de preparar o contexto"

Dockerignore

Já se perguntou porque é que a imagem demora tanto tempo a ser criada? Talvez não tenha utilizado .dockerignorepara ignorar os ficheiros que não são necessários na imagem. O .git deve ser removida automaticamente, bem como quaisquer ficheiros temporários.

Ordem dos comandos no Dockerfile

O Docker guarda cada linha do Dockerfile e, após a construção, cada linha é guardada como uma camada. É muito importante não alterar a ordem de determinados comandos com muita frequência.

DO ubuntu
EXECUTAR apt-get install -y software-properties-common pitão
EXECUTAR add-apt-repository ppa:chris-lea/node.js
EXECUTAR echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universo" >> /etc/apt/sources.list
EXECUTAR apt-get update
EXECUTAR apt-get install -y nodejs
EXECUTAR apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
EXECUTAR mkdir /var/www

ADICIONAR app.js /var/www/app.js

CMD ["/usr/bin/node", "/var/www/app.js"]

Por exemplo, se alterar a última linha no Dockerfile, todas as linhas anteriores serão descarregadas da cache enquanto a última linha será modificada. Quando substituir a linha nº 4, todas as linhas a partir da linha 4 até ao fim serão modificadas. Por este motivo, vale a pena colocar os comandos que não serão alterados no início do ficheiro.

Copiar ficheiros para a imagem

Vale a pena considerar para que é que uma determinada imagem será utilizada. Se precisar dela para lançar um serviço uma vez, basta copiar o código conteúdo diretamente para a imagem:

COPY . /workdir

Infelizmente, isto impossibilita a edição de ficheiros e, sempre que quiser editar o seu código, terá de construir a imagem novamente.

Se estiver a utilizar o MacOS e quiser utilizar a imagem construída para desenvolvimento, terá de abordar esta questão de uma forma ligeiramente diferente. Se utilizar volumes, tem de estar preparado para o facto de esta ser uma solução extremamente lenta (por exemplo, a cópia de um ficheiro do anfitrião para o contentor é feita a uma velocidade de 4,5 MB/s, enquanto a cópia interna no contentor é feita a uma velocidade 10-20x superior). Felizmente, como pode ver em ligaçãoO problema é conhecido e a sua solução é a questão-chave para a equipa responsável pelo desenvolvimento do Docker para Mac.

Como é que se pode utilizar o Docker para o desenvolvimento nesta situação?

Pode utilizá-lo para serviços externos, por exemplo, Redis/PSQL/Elasticsearch ou utilizar soluções prontas, que oferecem rsync: https://github.com/brikis98/docker-osx-dev

Em suma

Se tiver uma grande equipa e quiser testar uma nova funcionalidade, o docker será a ferramenta ideal! No entanto, será que a utilizaria para o lançamento de um servidor em produção? Ainda não estou totalmente convencido...

Para além disso, recomendo alguns artigos de destaque:

  • como testar imagens
  • outra coisa sobre o Docker, mas também vale a pena mencionar
  • Por último, mas não menos importante, a documentação do Docker

Artigos relacionados

Ilustração de uma aplicação de cuidados de saúde para smartphone com um ícone de coração e um gráfico de saúde em ascensão, com o logótipo The Codest, representando soluções digitais de saúde e HealthTech.
Desenvolvimento de software

Softwares para o setor de saúde: Tipos, casos de uso

As ferramentas em que as organizações de cuidados de saúde confiam atualmente não se assemelham em nada às fichas de papel de há décadas atrás. O software de cuidados de saúde apoia agora os sistemas de saúde, os cuidados aos doentes e a prestação de cuidados de saúde modernos em...

OCODEST
Ilustração abstrata de um gráfico de barras em declínio com uma seta ascendente e uma moeda de ouro que simboliza a eficiência ou a poupança de custos. O logótipo The Codest aparece no canto superior esquerdo com o slogan "In Code We Trust" sobre um fundo cinzento claro
Desenvolvimento de software

Como dimensionar a sua equipa de desenvolvimento sem perder a qualidade do produto

Aumentar a sua equipa de desenvolvimento? Saiba como crescer sem sacrificar a qualidade do produto. Este guia cobre sinais de que é hora de escalar, estrutura da equipe, contratação, liderança e ferramentas - além de como o The Codest pode...

OCODEST
Desenvolvimento de software

Construir aplicações Web preparadas para o futuro: ideias da equipa de especialistas do The Codest

Descubra como o The Codest se destaca na criação de aplicações web escaláveis e interactivas com tecnologias de ponta, proporcionando experiências de utilizador perfeitas em todas as plataformas. Saiba como a nossa experiência impulsiona a transformação digital e o negócio...

OCODEST
Desenvolvimento de software

As 10 principais empresas de desenvolvimento de software sediadas na Letónia

Saiba mais sobre as principais empresas de desenvolvimento de software da Letónia e as suas soluções inovadoras no nosso último artigo. Descubra como estes líderes tecnológicos podem ajudar a elevar o seu negócio.

thecodest
Soluções para empresas e escalas

Fundamentos do desenvolvimento de software Java: Um Guia para Terceirizar com Sucesso

Explore este guia essencial sobre o desenvolvimento de software Java outsourcing com sucesso para aumentar a eficiência, aceder a conhecimentos especializados e impulsionar o sucesso do projeto com The Codest.

thecodest

Subscreva a nossa base de conhecimentos e mantenha-se atualizado sobre os conhecimentos do sector das TI.

    Sobre nós

    The Codest - Empresa internacional de desenvolvimento de software com centros tecnológicos na Polónia.

    Reino Unido - Sede

    • Office 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polónia - Pólos tecnológicos locais

    • Parque de escritórios Fabryczna, Aleja
      Pokoju 18, 31-564 Cracóvia
    • Embaixada do Cérebro, Konstruktorska
      11, 02-673 Varsóvia, Polónia

      The Codest

    • Início
    • Sobre nós
    • Serviços
    • Case Studies
    • Saber como
    • Carreiras
    • Dicionário

      Serviços

    • Aconselhamento
    • Desenvolvimento de software
    • Desenvolvimento backend
    • Desenvolvimento de front-end
    • Staff Augmentation
    • Programadores de back-end
    • Engenheiros de nuvem
    • Engenheiros de dados
    • Outros
    • Engenheiros de GQ

      Recursos

    • Factos e mitos sobre a cooperação com um parceiro externo de desenvolvimento de software
    • Dos EUA para a Europa: Porque é que as empresas americanas decidem mudar-se para a Europa?
    • Comparação dos centros de desenvolvimento da Tech Offshore: Tech Offshore Europa (Polónia), ASEAN (Filipinas), Eurásia (Turquia)
    • Quais são os principais desafios dos CTOs e dos CIOs?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Direitos de autor © 2026 por The Codest. Todos os direitos reservados.

    pt_PTPortuguese
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese es_ESSpanish nl_NLDutch etEstonian elGreek cs_CZCzech pt_PTPortuguese