связка maven-dependency-plugin + maven-jar-plugin с соответствующей конфигурацией подготавливает приложения для запуски и не зависит от версий/фич/багов spring-boot-maven-plugin
так и было задумано. при конфигурации версия зависимостей фиксируется на мажорной-минорной версии. простая пересборка контейнера подтянет новую патч версию при наличии
базой должно быть понимание того, что благодаря CRI в K8S Docker не является рантаймом по умолчанию, и большинство упомянутых уязвимостей не будет актуально при использовании другого рантайма
примечательно, что в категориях "Постоянное улучшение продукта" и "Программы, основанные на социальной значимости" примеров компаний нет. Что лишний раз подчёркивает, что бизнес должен зарабатывать деньги, а не заниматься благотворительностью. Лично для себя выбираю упомянутую "осознанность" - надеюсь, это как-нибудь повлияет на тенденции
оригинал статьи 2019 года, поэтому стоило бы оставить замечание о базовом образе "openjdk:10-jdk": DEPRECATION NOTICE
HEALTHCHECK в современном контейнерном окружении не нужен, т.к. выполняется извне
COPY ${JAR_FILE} app.jarрекомендую посмотреть в сторону thin jar, когда есть более гибкая возможность контроля зависимостей и убирается слой Spring для работы с fat jar
на старте мало данных для того, чтобы понять, что именно нужно разделять. бывает, что тщательно спланированная архитектура ведёт к сложностям реализации, что приводит к объединению модулей для оптимального взаимодействия
связка maven-dependency-plugin + maven-jar-plugin с соответствующей конфигурацией подготавливает приложения для запуски и не зависит от версий/фич/багов spring-boot-maven-plugin
так и было задумано. при конфигурации версия зависимостей фиксируется на мажорной-минорной версии. простая пересборка контейнера подтянет новую патч версию при наличии
можно использовать Multi-stage сборку. Образ билдера:
ARG PYTHON_VERSION=3.13
FROM python:${PYTHON_VERSION}-alpine
ENV PIP_DEFAULT_TIMEOUT=100
PIP_DISABLE_PIP_VERSION_CHECK=1
PIP_NO_CACHE_DIR=1
POETRY_VERSION=2.1.1
PYTHONUNBUFFERED=1
ENV PATH="/root/.local/bin:${PATH}"
RUN apk add --no-cache gcc alpine-sdk linux-headers &&
wget https://install.python-poetry.org -O - | python3 - &&
poetry self add poetry-plugin-bundle
Образ приложения:
ARG PYTHON_VERSION=3.13
FROM python-poetry-builder:python${PYTHON_VERSION} AS builder
WORKDIR /usr/src/app
COPY pyproject.toml ./
COPY src/. ./src
RUN poetry lock &&
poetry bundle venv --only=main /venv -vvv
FROM python:${PYTHON_VERSION}-alpine
COPY --from=builder /venv /venv
ENTRYPOINT ["/venv/bin/app"]
много интересного нашёл на https://studio.code.org/
может проблема в задачах?
базой должно быть понимание того, что благодаря CRI в K8S Docker не является рантаймом по умолчанию, и большинство упомянутых уязвимостей не будет актуально при использовании другого рантайма
DevOps из вас так себе
примечательно, что в категориях "Постоянное улучшение продукта" и "Программы, основанные на социальной значимости" примеров компаний нет. Что лишний раз подчёркивает, что бизнес должен зарабатывать деньги, а не заниматься благотворительностью.
Лично для себя выбираю упомянутую "осознанность" - надеюсь, это как-нибудь повлияет на тенденции
оригинал статьи 2019 года, поэтому стоило бы оставить замечание о базовом образе "
openjdk:10-jdk
": DEPRECATION NOTICEHEALTHCHECK
в современном контейнерном окружении не нужен, т.к. выполняется извнеCOPY ${JAR_FILE} app.jar
рекомендую посмотреть в сторону thin jar, когда есть более гибкая возможность контроля зависимостей и убирается слой Spring для работы с fat jarна старте мало данных для того, чтобы понять, что именно нужно разделять. бывает, что тщательно спланированная архитектура ведёт к сложностям реализации, что приводит к объединению модулей для оптимального взаимодействия
proto модели лежат в своём репо, который подключается git module'м к нужному проекту
горизонтальный автоскейлер используется для того, чтобы добавить ресурсов на обработку увеличившегося количество запросов
есть ли способ настроить на цель? в человеке помимо своих злокачественых клеток есть ещё вирусы и бактерии
автоматизация. всё, что делается через CLI, очень просто встроить через скрипты для выполнения автоматически
в случае использования Maven версия зависимости фикстированная
Maven репозитории не позволяют перезаписывать уже существующий релиз артефакта
использование инструментов вроде dependabot позволяют автоматизировать процесс обновления зависимостей
найденные ошибки были отправлены разработчикам?
> 1,2 млрд строк кода и более 25 тысяч репозиториев
зеркало гитхаба?
моноблок + беспроводные мышь с клавиатурой. есть варианты mATX с возможностью установки десктопной памяти
и очень зря - уже давно deprecated
логичнее смотрится Enum на int'ах. Дополнительно можно и специфичные флаги в элементах размещать