Sobes.tech
Senior

Môžeš rozprávať o nasadzovaní cez Docker — ako to fungovalo?

sobes.tech AI

Odpoveď od AI

Nasadenie pomocou Docker zvyčajne vychádza z kontajnerizácie aplikácie, čo umožňuje zabaliť všetky závislosti a prostredie spustenia do jedného obrazu. Z mojich skúseností s Golang to vyzeralo takto:

  1. Napíše sa Dockerfile, kde je často ako základný obraz oficiálny golang alebo alpine pre minimálnu veľkosť.
  2. V Dockerfile sa zostaví binárny súbor aplikácie vnútri kontajnera (multi-stage build), aby sa na záverečnej fáze získal minimálny obraz s iba binárnym súborom a potrebnými súbormi.
  3. Obraz sa pushne do registra (Docker Hub, súkromný registry).
  4. Na serveri alebo v orchestrátore (napríklad Kubernetes) sa spustí kontajner z tohto obrazu.

Príklad Dockerfile pre Go aplikáciu:

# Fáza 1: Build
FROM golang:1.20-alpine AS builder
WORKDIR /app
COPY . .
RUN go build -o myapp

# Fáza 2: Run
FROM alpine:latest
WORKDIR /app
COPY --from=builder /app/myapp .
CMD ["./myapp"]

Tento prístup zabezpečuje reprodukovateľnosť prostredia, zjednodušuje deployment a škálovanie.