Перейти к основному содержимому

237 записей с тегом "DevOps"

Посмотреть все теги

· 4 мин. чтения

1. Введение

В этом руководстве мы покажем, как создавать проекты Maven в Docker. Во-первых, мы начнем с простого одномодульного Java-проекта и покажем, как докеризировать процесс сборки, используя многоэтапные сборки в Docker. Далее мы покажем, как использовать Buildkit для кэширования зависимостей между несколькими сборками. В конце мы расскажем, как использовать кеш слоев в многомодульных приложениях.

2. Многоступенчатая многоуровневая сборка

В этой статье мы создадим простое Java-приложение с Guava в качестве зависимости. Мы создадим толстый JAR с помощью плагина maven-assembly . Код и конфигурация Maven будут сокращены из этой статьи, так как они не являются основной темой.

Многоэтапные сборки — отличный способ оптимизировать процесс сборки Docker. Они позволяют нам хранить весь процесс в одном файле, а также помогают нам сделать образ Docker как можно меньше . На первом этапе мы запустим сборку Maven и создадим наш толстый JAR, а на втором этапе мы скопируем JAR и определим точку входа:

· 5 мин. чтения

1. Введение

В наших проектах мы часто используем docker-compose для развертывания наших контейнерных приложений. С CI и CD изменения кода и развертывания в настоящее время очень часты. Следовательно, важно убедиться, что docker-compose всегда использует самые последние образы приложений .

В этом уроке мы рассмотрим несколько вариантов достижения того же.

2. Явное извлечение изображений

Возьмем простой пример файла docker-compose:

· 9 мин. чтения

1. Обзор

При интенсивном использовании Docker управление несколькими разными контейнерами быстро становится громоздким.

Docker Compose — это инструмент, который помогает нам преодолеть эту проблему и легко обрабатывать несколько контейнеров одновременно.

В этом уроке мы рассмотрим его основные функции и мощные механизмы.

2. Объяснение конфигурации YAML

· 6 мин. чтения

1. Обзор

В общем, команда сборки Docker ограничивает источники файлов, которые мы можем использовать в наших образах Docker. Мы указываем контекст сборки, который является корнем, из которого должны быть найдены как Dockerfile , так и все его зависимые файлы.

Однако иногда нам может понадобиться использовать Dockerfile из одной части нашей файловой системы с файлами из другой.

В этом кратком руководстве мы рассмотрим несколько способов преодоления этого ограничения, а также их плюсы и минусы.

2. Сборка Docker и ее контекст

· 9 мин. чтения

1. Обзор

Когда мы запускаем Java в контейнере, мы можем захотеть настроить его, чтобы наилучшим образом использовать доступные ресурсы.

В этом руководстве мы увидим, как установить параметры JVM в контейнере, который запускает процесс Java. Хотя следующее относится к любому параметру JVM, мы сосредоточимся на общих флагах -Xmx и -Xms .

Мы также рассмотрим распространенные проблемы контейнеризации программ, работающих с определенными версиями Java, и способы установки флагов в некоторых популярных контейнеризованных Java-приложениях.

2. Настройки кучи по умолчанию в контейнерах Java

· 4 мин. чтения

1. Введение

.Git — ведущая система контроля версий для разработки программного обеспечения. С другой стороны, Dockerfile содержит все команды для автоматического создания образа нашего приложения. Эти два продукта — идеальное сочетание для тех, кто хочет внедрить DevOps .

В этом руководстве мы рассмотрим несколько решений для объединения этих двух технологий. Мы подробно рассмотрим каждое решение и рассмотрим его плюсы и минусы.

2. Dockerfile внутри репозитория Git

Самое простое решение для постоянного доступа к репозиторию Git внутри Dockerfile — хранить Dockerfile непосредственно в репозитории Git:

· 7 мин. чтения

1. Обзор

В этой статье мы рассмотрим статический анализ исходного кода с помощью SonarQube — платформы с открытым исходным кодом для обеспечения качества кода.

Давайте начнем с основного вопроса — зачем вообще анализировать исходный код? Проще говоря, для обеспечения качества, надежности и ремонтопригодности в течение всего срока службы проекта; плохо написанная кодовая база всегда обходится дороже.

Хорошо, теперь давайте начнем, загрузив последнюю LTS-версию SonarQube со страницы загрузки и настроив наш локальный сервер, как описано в этом кратком руководстве .

2. Анализ исходного кода

· 6 мин. чтения

1. Введение

В этом руководстве мы хотим запустить приложение Spring Boot с популярной базой данных с открытым исходным кодом PostgreSQL. В предыдущей статье мы рассматривали Docker Compose для одновременной обработки нескольких контейнеров . Поэтому вместо того, чтобы устанавливать PostgreSQL как отдельное приложение, мы будем использовать Docker Compose для запуска Spring Boot и PostgreSQL .

2. Создание проекта Spring Boot

Перейдем к Spring Initializer и создадим наш проект Spring Boot . Мы добавим модули PostgreSQL Driver и Spring Data JPA . После того, как мы загрузим полученный ZIP-файл и распакуем его в папку, мы можем запустить наше новое приложение:

./mvnw spring-boot:run

· 3 мин. чтения

1. Обзор

В этой быстрой статье мы собираемся программно создать, настроить и запустить сервер Tomcat .

2. Настройка

Прежде чем мы начнем, нам нужно настроить наш проект Maven, добавив следующие зависимости в наш pom.xml :

<dependencies>
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-catalina</artifactId>
<version>${tomcat.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${apache.httpclient}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

· 5 мин. чтения

1. Обзор

Jenkins — это сервер непрерывной интеграции с открытым исходным кодом, который позволяет создавать настраиваемые плагины для конкретной задачи/среды.

В этой статье мы пройдем весь процесс создания расширения, которое добавляет статистику в вывод сборки, а именно количество классов и строк кода.

2. Настройка

Первое, что нужно сделать, это настроить проект. К счастью, Jenkins предоставляет для этого удобные архетипы Maven .