Ответ
Обычно деплой Go-сервисов включает несколько этапов:
- Сборка:
GOOS=linux GOARCH=amd64 go build -o service main.go
- Докеризация (если используется):
FROM alpine:latest
COPY service /app/
CMD ["/app/service"]
- Деплой:
- На сервер через CI/CD (GitHub Actions, GitLab CI)
- В Kubernetes через Helm или kubectl
- На облачные платформы (AWS ECS, GCP Cloud Run)
Для продакшена важно:
- Использовать multi-stage Docker builds
- Устанавливать минимальные базовые образы (scratch/alpine)
- Настраивать health checks
- Конфигурировать через environment variables
Пример CI/CD на GitHub Actions:
jobs:
deploy:
steps:
- uses: actions/checkout@v3
- run: go build -o service
- run: docker build -t service .
- run: kubectl apply -f k8s/