Docker

Da GolemWiki.
Versione del 8 dic 2020 alle 20:47 di Giomba (discussione | contributi) (Creata pagina con "{{Note |type=attention |text=Se stai usando Docker per realizzare un servizio al GOLEM, allora dovresti considerare di scambiare quattro chiacchiere col sistemista e di entrar...")
(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Golem-template-note-attention.png Se stai usando Docker per realizzare un servizio al GOLEM, allora dovresti considerare di scambiare quattro chiacchiere col sistemista e di entrare a far parte del gruppo del sistema automatico argilla su git.


Flusso di lavoro

Ho un programma e voglio farne un container docker per usarlo nell'infrastruttura GOLEM. Che fare?

Sono il programmatore:

  1. Scrivere il Dockerfile per il proprio programma
  2. Creare l'immagine per il proprio programma

Sono il sistemista:

  1. Scrivere il docker-compose.yml per il servizio
  2. Avviare il servizio

Segue un esempio di flusso di lavoro per thttpd.

Dockerfile

Dockerfile
 FROM alpine:latest
 RUN apk add thttpd
 ENTRYPOINT ["thttpd", "-D", "-d", "/html"]

Creare l'immagine e taggarla

docker build --tag hub.docker.golem.linux.it/thttpd:latest .

Creare il servizio

Il servizio si chiamerà webserver.

docker-compose.yml
 version: "3.3"
 services:
   webserver:
     image: hub.docker.golem.linux.it/thttpd:latest
     restart: unless-stopped
     ports:
       - "8000:80"
     volumes:
       - /srv/webserver:/html

dove:

  • webserver è il nome del servizio, usato da docker-compose per nominare i container automaticamente
  • image immagine docker, con tanto di dominio del repository
  • ports sono espresse nella forma host:container
  • volumes: usare sempre una cartella nella forma /srv/$nome_servizio, per coerenza

Avvio

docker-compose up

(eventualmente usare anche -d per mandarlo in background)

Pushare immagine

Sul repository privato:

docker push hub.docker.golem.linux.it/thttpd:latest

Ma se non l'hai mai fatto, la prima volta il repository richiede l'autenticazione:

docker login hub.docker.golem.linux.it