Docker — это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют изолировать приложение и его зависимости, что делает развертывание более предсказуемым и удобным.
Для начала установите Docker на вашу машину. Официальная документация Docker предоставляет подробные инструкции для различных операционных систем: https://docs.docker.com/get-docker/.
Dockerfile — это текстовый файл, содержащий инструкции для сборки Docker-образа. Для Go-приложения он может выглядеть так:
Код:
# Используем официальный образ GoFROM golang:1.20-alpine# Устанавливаем рабочую директориюWORKDIR /app# Копируем исходный код в контейнерCOPY . .# Собираем приложениеRUN go build -o myapp .# Указываем команду для запуска приложенияCMD ["./myapp"]Чтобы собрать Docker-образ, выполните команду в терминале:
Код:
docker build -t my-go-app .После сборки образа запустите контейнер:
Код:
docker run -p 8080:8080 my-go-appТеперь ваше Go-приложение доступно на порту 8080.
CI/CD (Continuous Integration / Continuous Deployment) — это практика автоматизации процессов интеграции кода, тестирования и развертывания. Рассмотрим, как настроить базовый CI/CD-пайплайн для Go-приложения.
GitHub Actions — это встроенный инструмент для автоматизации CI/CD в репозиториях GitHub.
.github/workflows/ci-cd.yml в вашем репозитории.Код:
name: CI/CD Pipelineon: push: branches: - mainjobs: build: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: '1.20' - name: Build run: go build -o myapp . - name: Run tests run: go test ./... - name: Build Docker image run: docker build -t my-go-app . - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_TOKEN }} - name: Push Docker image run: docker push my-go-appДля автоматического развертывания можно использовать инструменты вроде Kubernetes, Docker Swarm или даже простой скрипт для обновления контейнеров на сервере.
После прохождения этого материала вы сможете:
DevOps — это мощный подход, который помогает разработчикам и операционным командам работать эффективнее. Использование Docker и CI/CD для Go-приложений позволяет ускорить delivery, улучшить качество кода и упростить процесс развертывания. Начните с малого: создайте Docker-контейнер для своего приложения и настройте базовый CI/CD-пайплайн. Со временем вы сможете расширять и улучшать свои процессы, чтобы достичь максимальной автоматизации и эффективности. Удачи в изучении DevOps!
Статистика: Добавлено Михаил Молчанов — 21 мар 2025, 22:44