TOOGLE
Docker/Golang - DevOps
Dockerfile basico

# Etapa 1: Build (compilação do código Go)
FROM golang:1.23-alpine AS builder

WORKDIR /app

# Copia os arquivos de dependências go.mod e go.sum para o contêiner
COPY go.mod go.sum ./

# Baixa as dependências do Go
RUN go mod tidy

# Copia o código fonte do seu projeto para o contêiner
COPY . .

# Compila o código Go e gera um binário chamado 'servidor'
RUN go build -o servidor .

# Etapa 2: Imagem final - a partir da imagem Alpine, que é mais leve
FROM alpine:latest

# Copia o binário compilado da etapa 1 para a imagem final
COPY --from=builder /app/servidor /usr/local/bin/servidor

# Expõe a porta 8080 para que o contêiner possa receber requisições
EXPOSE 8080

# Define o comando a ser executado quando o contêiner for iniciado
CMD ["/usr/local/bin/servidor"]
```

construir conteiner
docker build -t servidor-go .


Rodar conteiner
docker run -p 8080:8080 servidor-go


Taguear a imagem
docker tag servidor-go kaiodeodato/servidor-go:latest


Push para Dockerhub
docker push kaiodeodato/servidor-go:latest

Se quiser atualizar a imagem latest, fazer build sem cache
docker build --no-cache -t kaiodeodato/servidor-go:latest .