Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Update Docker configuration for backend and frontend #2

Merged
merged 1 commit into from
Jul 5, 2024

Conversation

shestera
Copy link
Collaborator

@shestera shestera commented Jul 5, 2024

Этот MR вносит несколько значительных изменений в CI-процесс и конфигурацию Docker, направленных на оптимизацию процесса сборки, улучшение выполнения тестов и управление контейнерами. Ниже представлено подробное описание изменений:

Изменения в .github/workflows/ci.yaml

  1. Настройка Docker:
  • Добавлен шаг для настройки Docker Buildx с использованием docker/setup-buildx-action@v3.
  • Эта настройка необходима для использования расширенных возможностей сборки, включая мультиплатформенные сборки и управление кэшем.
  1. Сборка Docker-контейнеров:
  • Введен шаг для сборки Docker-контейнеров с использованием docker/bake-action@v3 с параметром load: true, чтобы гарантировать загрузку образов в локальный кэш Docker.
  1. Тесты Backend и Frontend:
  • Существующие шаги для запуска тестов backend и frontend с использованием Docker Compose остались без изменений, за исключением добавления новой строки в конце файла для соблюдения стандартов форматирования.
  1. Очистка:
  • Добавлен шаг очистки для корректного завершения работы служб Docker Compose после выполнения workflow, используя команду docker compose down.

Изменения в Dockerfile.backend

  1. Оптимизация кэширования слоев:
  • Изменен Dockerfile для копирования package.json и package-lock.json перед запуском npm install, что позволяет Docker более эффективно кэшировать шаг установки зависимостей.
  • После установки зависимостей копируется вся директория приложения.
  1. Изменение порта:
  • Обновлен открытый порт с 5000 на 3000.

Изменения в Dockerfile.frontend

  1. Оптимизация кэширования слоев:
  • Аналогично backend Dockerfile, изменен для копирования package.json и package-lock.json сначала для лучшего кэширования шага npm install.
  • После установки зависимостей копируются остальные файлы приложения.
  1. Изменение порта:
  • Обновлен открытый порт с 5000 на 3000.

Добавление docker-bake.hcl

  1. Конфигурация Docker Bake:
  • Добавлен новый файл docker-bake.hcl для определения целей сборки Docker-образов backend и frontend.
  • Настроено кэширование с использованием кэша GitHub Actions с настройками cache-to и cache-from для улучшения производительности и надежности сборки.

Преимущества

  • Улучшенная эффективность сборки: Оптимизация кэширования слоев и интеграция Docker Bake значительно ускоряют процесс сборки Docker.

  • Лучшее управление ресурсами: Шаг очистки гарантирует корректное управление ресурсами Docker, предотвращая возможные конфликты или утечки ресурсов.

  • Согласованность и поддерживаемость: Структурированные файлы Docker и workflow упрощают поддержку и обеспечивают согласованность процессов.

@shestera shestera self-assigned this Jul 5, 2024
@shestera shestera merged commit f1f6f13 into main Jul 5, 2024
1 check passed
@shestera shestera deleted the add-docker-cache branch July 5, 2024 11:21
ArtyomIvanov added a commit to ArtyomIvanov/architecture-sprint-1 that referenced this pull request Jul 21, 2024
ArtyomIvanov added a commit to ArtyomIvanov/architecture-sprint-1 that referenced this pull request Jul 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant