window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = finestra if (w.LeadBooster) { console.warn('LeadBooster esiste già') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() COME FARE DOCKER LEZIONE APPRESA - The Codest
The Codest
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Industrie
    • Fintech e banche
    • E-commerce
    • Adtech
    • Tecnologia della salute
    • Produzione
    • Logistica
    • Automotive
    • IOT
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
  • Chi siamo
  • Servizi
    • Sviluppo di software
      • Sviluppo Frontend
      • Sviluppo backend
    • Staff Augmentation
      • Sviluppatori Frontend
      • Sviluppatori backend
      • Ingegneri dei dati
      • Ingegneri del cloud
      • Ingegneri QA
      • Altro
    • Consulenza
      • Audit e consulenza
  • Valore per
    • CEO
    • CTO
    • Responsabile della consegna
  • Il nostro team
  • Case Studies
  • Sapere come
    • Blog
    • Incontri
    • Webinar
    • Risorse
Carriera Contattate
Freccia indietro TORNA INDIETRO
2018-09-09
Sviluppo di software

COME FARE DOCKER LEZIONE APPRESA

Dawid Polchlopek

Da quando ho notato che l'applicazione che abbiamo preparato si è espansa in modo significativo, ho deciso di trovare un metodo completamente nuovo per automatizzare il processo di lancio. Per me era importante trovare una soluzione che permettesse di attivare nuove funzionalità in modo isolato.

Introduzione

La scoperta di un metodo più semplice per l'automazione dei processi rappresenterebbe un miglioramento significativo del mio lavoro e di quello di tutto il mio staff. squadra. Ho pensato: "Perché non usare Docker?".

Durante la fase di preparazione, ho creato due setup: uno per l'applicazione front-end e l'altro per l'API. Di seguito potete vedere una presentazione di ciò che ho imparato durante il processo di sviluppo.

Il primo problema

Voglio avere un repository clonato nel contenitore, quindi ho aggiunto una chiave ssh tramite il comando ADD nel Dockerfile:

aggiungere ~/.ssh/testowy

E bam! Il file non viene trovato. Perché?

Supponiamo di avere la seguente struttura di cartelle:

docker/
|-- roba/
|-- test.txt
|-- Dockerfile
server/
|-- dati
|-- setup.yml

Eseguire il comando costruire nel coda di accesso e si possono aggiungere solo i file della cartella locale e delle sue sottocartelle locali, ad esempio le cose.

Se si vuole aggiungere l'opzione server riceverete un messaggio: "Impossibile preparare il contesto".

Dockerignore

Vi siete mai chiesti perché l'immagine impiega così tanto tempo a costruirsi? Forse non avete usato .dockerignoreper ignorare i file non necessari nell'immagine. Il .git dovrebbe essere rimossa automaticamente, così come tutti i file temporanei.

Ordine dei comandi nel file Docker

Docker salva ogni riga nel file Docker e dopo la costruzione ogni riga viene salvata come livello. È molto importante non cambiare troppo spesso l'ordine di determinati comandi.

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

AGGIUNGI app.js /var/www/app.js

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

Ad esempio, se si modifica l'ultima riga del file Docker, tutte le righe precedenti verranno scaricate dalla cache mentre l'ultima riga verrà modificata. Se si sostituisce la riga n. 4, verranno modificate tutte le righe a partire dalla riga 4 fino alla fine. Per questo motivo è opportuno inserire i comandi che non verranno modificati all'inizio del file.

Copia dei file nell'immagine

Vale la pena di considerare l'uso che si farà di una determinata immagine. Se serve per lanciare un servizio una volta, basta copiare il file codice direttamente all'immagine:

COPIA . /workdir

Sfortunatamente, questo rende impossibile modificare i file e ogni volta che si vuole modificare il codice, si deve costruire di nuovo l'immagine.

Se si usa MacOS e si vuole usare l'immagine costruita per lo sviluppo, bisogna affrontare la questione in modo leggermente diverso. Se si usano i volumi, bisogna essere preparati al fatto che si tratta di una soluzione estremamente lenta (ad esempio, la copia di un file dall'host al contenitore avviene alla velocità di 4,5 MB/s, mentre la copia interna al contenitore ha una velocità 10-20 volte superiore). Fortunatamente, come si può vedere in linkIl problema è noto e la sua soluzione è il punto chiave per il team responsabile dello sviluppo di Docker per Mac.

Come si può utilizzare Docker per lo sviluppo in questa situazione?

È possibile utilizzarlo per servizi esterni, ad esempio Redis/PSQL/Elasticsearch o utilizzare soluzioni già pronte che offrono rsync: https://github.com/brikis98/docker-osx-dev

Per riassumere

Se avete un grande team e volete testare una nuova funzionalità, docker è lo strumento ideale! Tuttavia, lo utilizzerei per il lancio in produzione di un server? Non sono ancora del tutto convinto...

Inoltre, vi raccomando alcuni articoli eccezionali:

  • come testare le immagini
  • un'altra cosa su Docker, ma che vale la pena di menzionare
  • Infine, ma non meno importante, la documentazione di Docker

Articoli correlati

Sviluppo di software

Costruire applicazioni web a prova di futuro: le intuizioni del team di esperti di The Codest

Scoprite come The Codest eccelle nella creazione di applicazioni web scalabili e interattive con tecnologie all'avanguardia, offrendo esperienze utente senza soluzione di continuità su tutte le piattaforme. Scoprite come la nostra esperienza favorisce la trasformazione digitale e il business...

IL CANCRO
Sviluppo di software

Le 10 principali aziende di sviluppo software con sede in Lettonia

Scoprite le migliori aziende di sviluppo software della Lettonia e le loro soluzioni innovative nel nostro ultimo articolo. Scoprite come questi leader tecnologici possono aiutarvi a migliorare la vostra attività.

thecodest
Soluzioni per aziende e scaleup

Essenziali di sviluppo software Java: Guida all'outsourcing di successo

Esplorate questa guida essenziale sullo sviluppo di software Java con successo outsourcing per migliorare l'efficienza, accedere alle competenze e guidare il successo del progetto con The Codest.

thecodest
Sviluppo di software

La guida definitiva all'outsourcing in Polonia

L'aumento di outsourcing in Polonia è guidato dai progressi economici, educativi e tecnologici, che favoriscono la crescita dell'IT e un clima favorevole alle imprese.

IlCodesto
Soluzioni per aziende e scaleup

Guida completa agli strumenti e alle tecniche di audit IT

Gli audit IT garantiscono sistemi sicuri, efficienti e conformi. Per saperne di più sulla loro importanza, leggete l'articolo completo.

The Codest
Jakub Jakubowicz CTO e cofondatore

Iscrivetevi alla nostra knowledge base e rimanete aggiornati sulle competenze del settore IT.

    Chi siamo

    The Codest - Società internazionale di sviluppo software con centri tecnologici in Polonia.

    Regno Unito - Sede centrale

    • Ufficio 303B, 182-184 High Street North E6 2JA
      Londra, Inghilterra

    Polonia - Poli tecnologici locali

    • Parco uffici Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Ambasciata del cervello, Konstruktorska
      11, 02-673 Varsavia, Polonia

      The Codest

    • Casa
    • Chi siamo
    • Servizi
    • Case Studies
    • Sapere come
    • Carriera
    • Dizionario

      Servizi

    • Consulenza
    • Sviluppo di software
    • Sviluppo backend
    • Sviluppo Frontend
    • Staff Augmentation
    • Sviluppatori backend
    • Ingegneri del cloud
    • Ingegneri dei dati
    • Altro
    • Ingegneri QA

      Risorse

    • Fatti e miti sulla collaborazione con un partner esterno per lo sviluppo di software
    • Dagli Stati Uniti all'Europa: Perché le startup americane decidono di trasferirsi in Europa
    • Confronto tra gli hub di sviluppo Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filippine), Eurasia (Turchia)
    • Quali sono le principali sfide di CTO e CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condizioni di utilizzo del sito web

    Copyright © 2025 di The Codest. Tutti i diritti riservati.

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