Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kas ma saan Dockeris oma Go-rakenduse jaoks kasutada teist aluspilti


Kas ma saan Dockeris oma Go-rakenduse jaoks kasutada teist aluspilti


Jah, saate Dockeris kasutada Go rakenduse jaoks teistsugust baaspilti. Siin on mõned valikud ja kaalutlused.

1. Ametlik Golangi pilt:
- Ametlik "golangi" pilt on hea lähtepunkt ja seda soovitab Dockeri meeskond.
- See pakub teie Go rakenduse loomiseks ja käitamiseks vajalikku Go tööriistaahelat ja sõltuvusi.
- Näide: "FROM golang:1.19-alpine".

2. Alpipõhine pilt:
- Pilt "golang:alpine" on ametliku "golangi" kujutise väiksem variant, mis põhineb Alpine Linuxi distributsioonil.
- Selle tulemuseks on väiksemad lõplikud Dockeri kujutised, mis on juurutamiseks kasulik.
- Alpi-põhisel pildil võib siiski olla ühilduvusprobleeme mõne glibc-st sõltuva raamatukoguga.
- Näide: "FROM golang:1.19-alpine".

3. Distroless Image:
- Distroless kujutised on minimaalsed, mittejuurepõhised Dockeri kujutised, mis sisaldavad ainult teie rakendust ja selle käitusaegseid sõltuvusi.
- Need on kavandatud olema võimalikult väikesed ja turvalised, ilma paketihalduri, kesta või muude mittevajalike komponentideta.
- Näide: "FROM gcr.io/distroless/base-debian11".

4. Scratch Image:
- Scratch-pilt on tühi põhipilt, mis tähendab, et see ei sisalda operatsioonisüsteemi, teeke ega muid sõltuvusi.
- Selle tulemuseks on väikseim võimalik Dockeri kujutis, kuid see nõuab, et teie rakendus oleks staatiliselt kompileeritud ja sisaldaks kõiki vajalikke sõltuvusi.
- Näide: "Nullist".

Põhipildi valimisel arvestage järgmiste teguritega:
- Pildi suurus: kiiremaks juurutamiseks ja väiksemate salvestusvajaduste tagamiseks eelistatakse üldiselt väiksemaid pilte.
- Ühilduvus: veenduge, et teie rakendus ja selle sõltuvused ühilduvad teie valitud põhipildiga.
- Turvalisus: Distroless- ja kriimustuspildid on turvalisemad, kuna neil on väiksem ründepind.
- Silumine: täieliku operatsioonisüsteemiga pilte (nt "golang") võib olla lihtsam siluda, kuna pääsete juurde konteineri kestale ja utiliitidele.

Põhipildi valik sõltub lõppkokkuvõttes teie konkreetsetest nõuetest, nagu pildi suurus, turvalisus ja teie Go rakenduse keerukus. Tavaliselt kasutatakse arenduseks ja testimiseks ametlikku golangi kujutist ning seejärel lülitub tootmisjuurutuste jaoks minimaalsemale kujutisele, nagu 'distroless' või 'scratch'.

Tsitaadid:
[1] https://stackoverflow.com/questions/47028597/choosing-golang-docker-base-image
[2] https://hub.docker.com/_/golang
[3] https://snyk.io/blog/containerizing-go-applications-with-docker/
[4] https://docs.docker.com/language/golang/build-images/
[5] https://dev.to/chseki/build-a-super-minimalist-docker-image-to-run-your-golang-app-33j0