The Codest
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Industries
    • Fintech et banque
    • E-commerce
    • Adtech
    • Santé (Healthtech)
    • Fabrication
    • Logistique
    • Automobile
    • IOT
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
  • A propos de nous
  • Services
    • Développement de logiciels
      • Développement frontal
      • Développement backend
    • Staff Augmentation
      • Développeurs frontaux
      • Développeurs backend
      • Ingénieurs des données
      • Ingénieurs en informatique dématérialisée
      • Ingénieurs AQ
      • Autres
    • Conseil consultatif
      • Audit et conseil
  • Valeur pour
    • CEO
    • CTO
    • Gestionnaire des livraisons
  • Notre équipe
  • Études de cas
  • Savoir comment
    • Blog
    • Rencontres
    • Webinaires
    • Ressources
Carrières Prendre contact
Flèche arrière RETOUR
2018-09-09
Développement de logiciels

COMMENT DOCKER LEÇON APPRISE

Dawid Polchlopek

Depuis que j'ai constaté que l'application que nous avons préparée s'est considérablement développée, j'ai décidé de trouver une méthode entièrement nouvelle pour automatiser le processus de son lancement. Il était important pour moi de trouver une solution qui permette d'activer les nouvelles fonctionnalités de manière isolée.

Introduction

La découverte d'une méthode plus simple d'automatisation des processus constituerait une amélioration significative de mon travail et de celui de l'ensemble de mon personnel. équipe. Je me suis dit "Pourquoi ne pas utiliser Docker ?"

Au cours de la phase de préparation, j'ai créé deux configurations : l'une pour l'application frontale et l'autre pour l'API. Vous trouverez ci-dessous une présentation de ce que j'ai appris au cours du processus de développement.

Le premier problème

Je veux avoir un dépôt cloné dans le conteneur, j'ai donc ajouté une clé ssh via la commande ADD dans Dockerfile :

ADD ~/.ssh/testowy

Et bam ! le fichier n'est pas trouvé. Pourquoi ?

Supposons que nous ayons la structure de dossiers suivante :

docker/
|-- stuff/
|-- test.txt
|-- Dockerfile
server/
|-- data
|-- setup.yml

Exécuter la commande construire dans le file d'attente de connexion et vous ne pouvez ajouter que des fichiers du dossier local et de ses sous-dossiers locaux, par exemple stuff.

Si vous souhaitez ajouter le serveur vous recevrez un message : "Impossible de préparer le contexte"

Dockerignore

Vous êtes-vous déjà demandé pourquoi l'image met tant de temps à se construire ? Peut-être n'avez-vous pas utilisé .dockerignorepour ignorer les fichiers qui ne sont pas nécessaires dans l'image. L'option .git devrait être supprimé automatiquement, ainsi que tous les fichiers temporaires.

Ordre des commandes dans le fichier Docker

Docker enregistre chaque ligne dans Dockerfile et, après la construction, chaque ligne est enregistrée en tant que couche. Il est très important de ne pas changer l'ordre des commandes trop souvent.

Depuis ubuntu
Exécuter apt-get install -y software-properties-common python
RUN add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
Exécuter apt-get update
Exécuter apt-get install -y nodejs
Exécuter apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www

ADD app.js /var/www/app.js

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

Par exemple, si vous modifiez la dernière ligne du fichier Docker, toutes les lignes précédentes seront téléchargées depuis le cache tandis que la dernière ligne sera modifiée. Si vous remplacez la ligne n° 4, toutes les lignes à partir de la ligne 4 jusqu'à la fin seront modifiées. C'est pourquoi il est préférable de placer les commandes qui ne seront pas modifiées au début du fichier.

Copie de fichiers sur l'image

Il convient de réfléchir à l'usage qui sera fait d'une image donnée. Si vous en avez besoin pour lancer un service une seule fois, il suffit de copier le fichier code directement sur l'image :

COPY . /workdir

Malheureusement, cela rend impossible l'édition de fichiers et chaque fois que vous voudrez modifier votre code, vous devrez reconstruire l'image.

Si vous utilisez MacOS et souhaitez utiliser l'image construite pour le développement, vous devez aborder la question d'une manière légèrement différente. Si vous utilisez des volumes, vous devez vous attendre à ce que cette solution soit extrêmement lente (par exemple, la copie d'un fichier de l'hôte vers le conteneur se fait à une vitesse de 4,5 Mo/s, alors que la copie interne dans le conteneur se fait à une vitesse 10 à 20 fois plus élevée). Heureusement, comme vous pouvez le voir à lienLe problème est connu et sa solution est au cœur des préoccupations de l'équipe responsable du développement de Docker pour Mac.

Comment utiliser Docker pour le développement dans cette situation ?

Vous pouvez l'utiliser pour des services externes, par exemple Redis/PSQL/Elasticsearch ou utiliser des solutions prêtes à l'emploi, qui offrent rsync : https://github.com/brikis98/docker-osx-dev

En résumé

Si vous avez une grande équipe et que vous souhaitez tester une nouvelle fonctionnalité, docker sera l'outil idéal ! Néanmoins, l'utiliserais-je pour la mise en production d'un serveur ? Je ne suis pas encore totalement convaincu...

En outre, je recommande quelques articles remarquables :

  • comment tester les images
  • autre chose à propos de Docker, mais qui vaut aussi la peine d'être mentionné
  • enfin, la documentation Docker

Articles connexes

Développement de logiciels

Construire des applications web à l'épreuve du temps : les conseils de l'équipe d'experts de The Codest

Découvrez comment The Codest excelle dans la création d'applications web évolutives et interactives à l'aide de technologies de pointe, offrant une expérience utilisateur transparente sur toutes les plateformes. Découvrez comment notre expertise favorise la transformation numérique et la...

LE CODEST
Développement de logiciels

Les 10 premières entreprises de développement de logiciels basées en Lettonie

Découvrez les principales sociétés de développement de logiciels en Lettonie et leurs solutions innovantes dans notre dernier article. Découvrez comment ces leaders de la technologie peuvent vous aider à développer votre entreprise.

thecodest
Solutions pour les entreprises et les grandes entreprises

L'essentiel du développement de logiciels Java : Un guide pour une externalisation réussie

Explorez ce guide essentiel sur le développement réussi de logiciels Java outsourcing pour améliorer l'efficacité, accéder à l'expertise et assurer la réussite des projets avec The Codest.

thecodest
Développement de logiciels

Le guide ultime de l'externalisation en Pologne

L'essor de outsourcing en Pologne est dû aux progrès économiques, éducatifs et technologiques, qui favorisent la croissance des technologies de l'information et un climat propice aux entreprises.

TheCodest
Solutions pour les entreprises et les grandes entreprises

Le guide complet des outils et techniques d'audit informatique

Les audits informatiques garantissent la sécurité, l'efficacité et la conformité des systèmes. Pour en savoir plus sur leur importance, lisez l'article complet.

The Codest
Jakub Jakubowicz CTO & Co-Fondateur

Abonnez-vous à notre base de connaissances et restez au courant de l'expertise du secteur des technologies de l'information.

    A propos de nous

    The Codest - Entreprise internationale de développement de logiciels avec des centres technologiques en Pologne.

    Royaume-Uni - Siège

    • Bureau 303B, 182-184 High Street North E6 2JA
      Londres, Angleterre

    Pologne - Les pôles technologiques locaux

    • Parc de bureaux Fabryczna, Aleja
      Pokoju 18, 31-564 Kraków
    • Brain Embassy, Konstruktorska
      11, 02-673 Varsovie, Pologne

      The Codest

    • Accueil
    • A propos de nous
    • Services
    • Études de cas
    • Savoir comment
    • Carrières
    • Dictionnaire

      Services

    • Conseil consultatif
    • Développement de logiciels
    • Développement backend
    • Développement frontal
    • Staff Augmentation
    • Développeurs backend
    • Ingénieurs en informatique dématérialisée
    • Ingénieurs des données
    • Autres
    • Ingénieurs AQ

      Ressources

    • Faits et mythes concernant la coopération avec un partenaire externe de développement de logiciels
    • Des États-Unis à l'Europe : Pourquoi les startups américaines décident-elles de se délocaliser en Europe ?
    • Comparaison des pôles de développement Tech Offshore : Tech Offshore Europe (Pologne), ASEAN (Philippines), Eurasie (Turquie)
    • Quels sont les principaux défis des CTO et des DSI ?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Conditions d'utilisation du site web

    Copyright © 2025 par The Codest. Tous droits réservés.

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