Рубрики
Без рубрики

Kubernetes для разработчиков Java – Создание образа docker

Kubernetes для разработчиков Java. Помечены java, docker, kubernetes, containers.

С возвращением

В первом уроке этой серии мы узнаем о настройке локальной среды kubernetes. На данный момент у нас есть Java-приложение, которое использует базу данных mysql, работающую в docker. Чтобы упаковать наше приложение в образ docker, нам нужно создать Dockerfile.

Создайте файл Dockerfile

Определение Dockerfile:

FROM openjdk:11.0.3-jdk-slim
RUN mkdir /usr/myapp
COPY target/java-kubernetes-0.0.1-SNAPSHOT.jar /usr/myapp/app.jar
WORKDIR /usr/myapp
EXPOSE 8080
CMD ["java", "-Xms128m", "-Xmx256m", "-jar", "app.jar"]

Используйте Make для автоматизации задач

Make – это инструмент, который управляет созданием исполняемых файлов и других файлов, не являющихся исходными файлами программы, из исходных файлов программы. Мы будем использовать make для автоматизации команд maven и docker в этом проекте. Проверьте свою установку make. Введите make --version на терминале. Если ничего не происходит, пожалуйста, установите make перед продолжением.

Создайте Makefile

Создание Makefile в том же каталоге Dockerfile. Ознакомьтесь с полным файлом Makefile на github: https://github.com/sandrogiacom/java-kubernetes/blob/master/Makefile

Важными частями являются:

build:
    mvn clean install; \
    docker build --force-rm -t java-k8s .

run-db:
    make stop-db; \
    make rm-db; \
    docker run --name mysql57 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_USER=java -e MYSQL_PASSWORD=1234 -e MYSQL_DATABASE=k8s_java -d mysql/mysql-server:5.7

run-app:
    make stop-app; \
    make rm-app; \
    docker run --name myapp -p 8080:8080 -d -e DATABASE_SERVER_NAME=mysql57 --link mysql57:mysql57 java-k8s:latest      

сборка: Запустите maven и создайте образ docker с именем “java-k8s” run-db: Запустите новый контейнер базы данных mysql run-app: Запустите новый контейнер приложения

В этом порядке введите:

make build
make run-db
make run-app

Obs: Подождите 30 секунд между run:db и run:app , чтобы выделить время для запуска базы данных.

Чтобы просмотреть журналы приложения, введите:

docker logs -f myapp

И CTRL+C для выхода из режима ведения журнала.

Введите docker ps , чтобы увидеть запущенные контейнеры

Проверьте http://localhost:8080/persons

Чтобы остановить приложение и базу данных, введите:

make stop-app
make stop-db

Пожалуйста, клонируйте полное демо-приложение по адресу:

Пожалуйста, клонируйте полное демо-приложение по адресу:

Развлекайся!

Увидимся в следующей части. Разверните свое приложение в кластере kubernetes.

Оригинал: “https://dev.to/sandrogiacom/kubernetes-for-java-developers-creating-a-docker-image-1g36”