Примеры, уроки, статьи
✍️По всем вопросам: @Pascal4eg
Купить рекламу на telega.in: https://telega.in/c/java_tips_and_tricks
Информация о канале обновлена 17.08.2025.
Примеры, уроки, статьи
✍️По всем вопросам: @Pascal4eg
Купить рекламу на telega.in: https://telega.in/c/java_tips_and_tricks
В этом видео автор объясняет, что такое переменные и типы данных в Java.
Разбирается, как в языке хранится информация, какие бывают типы (int, double, boolean и др.) и как правильно их использовать.
шки и трюки || #Видео
⚔️ Kubernetes v🆚 Docker Compose — что выбрать для деплоя Java-приложения
Оба запускают контейнеры.
Оба читают YAML.
Но у одного — кнопка "всё просто", а у второго — масштаб и продакшен.
🐳 Docker Compose: для dev и staging
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
depends_on:
- db
db:
image: postgres:16
➡️ Всё в одном файле, разворачивается за 10 секунд
🟢 Подходит для локальной разработки и тестов
🟢 Никаких ingress, сервисов, namespaces
➡️ Отлично, пока всё помещается в голову
☸️ Kubernetes: для продакшена и масштабов
apiVersion: apps/v1
kind: Deployment
metadata:
name: java-app
spec:
replicas: 2
template:
spec:
containers:
- name: java
image: myapp:1.0
ports:
- containerPort: 8080
➡️ Управление через pod'ы и deployment'ы
🟢 Поддерживает автоскейлинг, rolling updates, отказоустойчивость
➡️ Требует kubectl
, ingress, сервисов, конфигов
🟢 Не подойдёт, если ты просто хочешь “запустить и посмотреть”
📡 Сеть: как доступен сервис
Compose:
ports:
- "8080:8080"
➡️ Пробрасывает порт хоста прямо в контейнер
Kubernetes:
kind: Service
spec:
type: LoadBalancer
➡️ Отдельный объект Service, управление через балансировщик
🟢 Kubernetes — это про маршрутизацию, а не про “форвард порт”
🔐 Переменные и секреты
Compose:
env_file:
- .env
➡️ Подключение переменных из файла
Kubernetes:
envFrom:
- configMapRef:
name: app-config
➡️ConfigMap и Secret — всё разделено по объектам
🟢 В K8s конфигурация живёт отдельно от кода и образа
🔁 Обновления
Compose:
docker compose down && docker compose up -d
➡️ Всё падает и поднимается заново
Kubernetes:
strategy:
type: RollingUpdate
➡️ Плавные обновления без даунтайма
🟢 K8s сам обновляет по одному поду
🗣️ Запомни: Docker Compose — это как запускать Java через main()
. Kubernetes — как запускать через продакшеновый оркестр с логами, шинами и охраной.
🐳 Docker Compose для Java: запускаем всё и сразу, в один файл
Когда у тебя Spring Boot, база, очередь и ещё 2 микросервиса — руками это не запустишь.
Docker Compose — способ задеплоить всё одним махом.
Без скриптов, без флагов, без “а где тут Redis?”. Просто up -d
— и готово 👇
📦 Минимальный пример — Spring Boot + Postgres
version: '3.9'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/demo
- SPRING_DATASOURCE_USERNAME=java
- SPRING_DATASOURCE_PASSWORD=secret
depends_on:
- db
db:
image: postgres:16
environment:
- POSTGRES_DB=demo
- POSTGRES_USER=java
- POSTGRES_PASSWORD=secret
➡️ Всё в одном файле: и приложение, и база
🟢 depends_on
гарантирует порядок запуска
🟢 Не нужен отдельный Postgres — он стартует сам
➡️ Ты просто клонируешь проект и запускаешь — как магия
🔄 Hot reload: монтируем код
volumes:
- .:/app
➡️ Приложение пересобирается при изменениях
🟢 Удобно для разработки, особенно с Spring DevTools
🟢 Работает как live reload, но без веб-сокетов
🧪 Добавляем ещё сервис: например, Redis
redis:
image: redis:7
ports:
- "6379:6379"
➡️ В Java конфиге указываешь localhost:6379
— и всё
🟢 Redis появляется в сети как обычный контейнер
🟢 В Compose все сервисы в одной сети по умолчанию
🔐 .env для переменных окружения
SPRING_DATASOURCE_USERNAME=java
SPRING_DATASOURCE_PASSWORD=secret
env_file:
- .env
➡️ Хранишь секреты вне Compose-файла
🟢 Удобно для CI/CD
🟢 Никогда не коммить .env
в репозиторий
🚫 Остановка и очистка
docker compose down -v
➡️ Останавливает и удаляет тома, сети, контейнеры
🟢 -v
— чтобы не остался мусор от базы
🟢 Это не “stop” — это аннигиляция всего стенда
🗣️Запомни: Docker Compose — как мультиварка: закинул всё внутрь, нажал кнопку, через минуту обед.
Владелец канала не предоставил расширенную статистику, но Вы можете сделать ему запрос на ее получение.
Также Вы можете воспользоваться расширенным поиском и отфильтровать результаты по каналам, которые предоставили расширенную статистику.
Также Вы можете воспользоваться расширенным поиском и отфильтровать результаты по каналам, которые предоставили расширенную статистику.
Подтвердите, что вы не робот
Вы выполнили несколько запросов, и прежде чем продолжить, мы ходим убелиться в том, что они не автоматизированные.