JavaRush /Java блог /Random UA /Як я розміщував Spring-Boot додаток на Heroku
Павел
11 рівень

Як я розміщував Spring-Boot додаток на Heroku

Стаття з групи Random UA
ЗМІСТ ЦИКЛУ СТАТТІВ Вирішив спробувати запустити простий додаток на хмарі. За основу я взяв цю статтюЯк розмістити Spring-Boot-додаток на heroku.com. Покрокова інструкція Якщо ти її прочитав(-ла) і все заробило без питань, то текст нижче не для тебе. Особисто у мене виникло кілька доповнень: 1. У пунктах 5, 6 і 7 показується, як використовувати в додатку хмарну базу даних, прочитати це все цікаво. Але якщо тобі, як і мені, це здалося зайвим, то можна використовуватиСУБД H2 (включи гугл трасліт). Тут показаний приклад як заповнити БД за допомогою файлу data.sql і скриптів. Я використовував не скрипти, аCommandLineRunnerякий надає метод run. Потрібно просто реалізувати клас, наприклад MyRunner навісити на нього java-конфігурацію та імплементувати інтерфейс. Нижче приклад використання:
@Component
public class MyRunner implements CommandLineRunner {

    @Autowired
    private CityRepository repository;

    @Override
    public void run(String... args) throws Exception {
        repository.deleteAll();

        repository.save(new City("Bratislava", 432000));
        repository.save(new City("Budapest", 1759000));
        repository.save(new City("Prague", 1280000));
    }
}
Метод виконатися в момент запуску програми та збереже сутності у БД. Важливо: з пункту 7 основної статті, до application.properties (або application.yaml) необхідно додати налаштування server.port=${PORT:8080} – дефолтний порт позбавить поширеної проблеми: heroku[router]: at=error code=H20 desc="App boot timeout" method=GET 2. У пункті 8 показується, як публікувати додаток. Там досить цікаво написано про особливості використання додатків на версії Java 11, як старообрядник використовую восьму Java, тому файл system.properties мені не потрібен. Якщо в тебе Java 9+ не забудь створити згаданий файл і додати версію Java. Автор пропонує наступний порядок публікації: <samp>Для цього виконаємо наступні кроки: • Відкриємо папку з репозиторієм проекту у терміналі Git Bash. • Знайдемо посилання на віддалений репозиторій heroku для вашої програми в Settings — у розділі App Information → Heroku git URL. • Додамо новий віддалений репозиторій до вашого Git.</samp> Я використав порядок, описаний на сайті Heroku. У створеному на сайті додатку потрібно знайти вкладку Deploy, прочитати все, що там написано. Як я розміщував Spring-Boot додаток на Heroku - 1 У структурі проекту IDEA має бути файл . gitignore та папка target повинна бути виключена з відстеження Git. В якості консолі я використав Terminal IDEA, просто в тому ж проекті, який хочу запустити в хмару, відкрив вкладку Terminal, ось так вона виглядає: Тому не мені треба Як я розміщував Spring-Boot додаток на Heroku - 2 шукати потрібну директорію. ( cd my-project/ ) heroku login - ми вже зробабо (якщо ні, то саме час). Далі копіюю і виконую по черзі гіт команди: Спочатку створюю гіт репозиторій git init heroku . git commit -am "make it better" git push heroku master У консолі будуть з'являтися логи: що програма почала складання, що Maven викачує залежності і в кінці:
remote:        https://from-java-rush.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/from-java-rush.git
 * [new branch]      master -> master
Де вказано посилання https://from-java-rush.herokuapp.com/, у тебе буде своє посилання, ось у нього і тицьни. Само собою, якщо у тебе немає графічного інтерфейсу в додатку, а лише набір rest методів, потрібно після посилання вказати через слєш назву методу, наприклад так: https://from-java-rush.herokuapp.com/heroku/city (треба почекати поки контейнер прокинеться, якщо не прокинувся, то значить я видалив додаток) Тепер ти можеш вносити зміни до розгорнутої програми на heroku, прямо з IDEA, використовуючи консольні Git команди git add . Або звичні , але менш інформативні кнопки інтерфейсу Як я розміщував Spring-Boot додаток на Heroku - 3
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ