Docker
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...")
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:
- Scrivere il Dockerfile per il proprio programma
- Creare l'immagine per il proprio programma
Sono il sistemista:
- Scrivere il docker-compose.yml per il servizio
- 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)
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