С возвращением
В первом уроке этой серии мы узнаем о настройке локальной среды 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”