Re[3]: Как запустить приложение с compose.yaml, Dockerfile, Spring Boot
От: Doom100500 Израиль  
Дата: 07.02.24 07:55
Оценка: 2 (1)
Здравствуйте, Aleksei_Lekomtsev, Вы писали:

D>>Нужно показать здесь compose.yaml, так как телепаты обычно отдыхают.

D>>Возможно достаточно просто docker-compose up -f compose.yaml. Очень может быть, что образ приложения собирается автоматом, если в compose.yaml так указано.

A_L>
A_L>services:
A_L>  postgres:
A_L>    image: 'postgres:latest'
A_L>    environment:
A_L>      - 'POSTGRES_DB=xxx'
A_L>      - 'POSTGRES_PASSWORD=xxx'
A_L>      - 'POSTGRES_USER=xxx'
A_L>    ports:
A_L>      - '5432:5432'
A_L>


Апликации здесь нет. Подразумевается, что композом поднимается только окружение.
Тогда нужно запускать апликацию так, как обычно ты запускаешь у себя проекты на java. Подключение к посgтрес будет localhost:5432 — это скорее всего апликацией читается через аргументы командной строки или из переменных окружения — смотри код.

Dokerfile для самой апликации, скорее всего, нужен для деплоя апликации на сервер — или в докер, или в кубер.
Можешь попробовать собрать этот образ у себя и запустить как контейнер. Подключение к базе всё равно будет localhost:5432.
Спасибо за внимание
Как запустить приложение с compose.yaml, Dockerfile, Spring Boot
От: Aleksei_Lekomtsev  
Дата: 07.02.24 05:53
Оценка:
Всем привет! Подскажите, плиз, как запустить проект? Есть compose.yaml, в котором только postgres, Dockerfile c описанием образа для создания приложения и Spring Boot. Использовать docker-compose up чтобы запустить контейнер с postgres, потом docker build, docker run чтобы запустить контейнер с приложением? И приложением должно запуститься? Метод main в классе с SpringBootApplication не нужно запускать?
spring boot docker
Re: Как запустить приложение с compose.yaml, Dockerfile, Spring Boot
От: Doom100500 Израиль  
Дата: 07.02.24 07:29
Оценка:
Здравствуйте, Aleksei_Lekomtsev, Вы писали:

A_L>Всем привет! Подскажите, плиз, как запустить проект? Есть compose.yaml, в котором только postgres, Dockerfile c описанием образа для создания приложения и Spring Boot. Использовать docker-compose up чтобы запустить контейнер с postgres, потом docker build, docker run чтобы запустить контейнер с приложением? И приложением должно запуститься? Метод main в классе с SpringBootApplication не нужно запускать?


Нужно показать здесь compose.yaml, так как телепаты обычно отдыхают.
Возможно достаточно просто docker-compose up -f compose.yaml. Очень может быть, что образ приложения собирается автоматом, если в compose.yaml так указано.
Спасибо за внимание
Re[2]: Как запустить приложение с compose.yaml, Dockerfile, Spring Boot
От: Aleksei_Lekomtsev  
Дата: 07.02.24 07:41
Оценка:
D>Нужно показать здесь compose.yaml, так как телепаты обычно отдыхают.
D>Возможно достаточно просто docker-compose up -f compose.yaml. Очень может быть, что образ приложения собирается автоматом, если в compose.yaml так указано.

services:
  postgres:
    image: 'postgres:latest'
    environment:
      - 'POSTGRES_DB=xxx'
      - 'POSTGRES_PASSWORD=xxx'
      - 'POSTGRES_USER=xxx'
    ports:
      - '5432:5432'
Re[4]: Как запустить приложение с compose.yaml, Dockerfile, Spring Boot
От: Aleksei_Lekomtsev  
Дата: 07.02.24 08:05
Оценка:
D>Апликации здесь нет. Подразумевается, что композом поднимается только окружение.
D>Тогда нужно запускать апликацию так, как обычно ты запускаешь у себя проекты на java. Подключение к посgтрес будет localhost:5432 — это скорее всего апликацией читается через аргументы командной строки или из переменных окружения — смотри код.

В build.gradle есть

ext {
    if (profile.equals('dev')) {
        dbUrl = System.getenv('DB_URL') ?: 'xxx'
        dbUsername = System.getenv('DB_USER') ?: 'xxx'
        dbPassword = System.getenv('DB_PASS') ?: 'xxx'
    }
}
Re[5]: Как запустить приложение с compose.yaml, Dockerfile,
От: Doom100500 Израиль  
Дата: 07.02.24 08:28
Оценка:
Здравствуйте, Aleksei_Lekomtsev, Вы писали:

D>>Апликации здесь нет. Подразумевается, что композом поднимается только окружение.

D>>Тогда нужно запускать апликацию так, как обычно ты запускаешь у себя проекты на java. Подключение к посgтрес будет localhost:5432 — это скорее всего апликацией читается через аргументы командной строки или из переменных окружения — смотри код.

A_L>В build.gradle есть


A_L>
A_L>ext {
A_L>    if (profile.equals('dev')) {
A_L>        dbUrl = System.getenv('DB_URL') ?: 'xxx'
A_L>        dbUsername = System.getenv('DB_USER') ?: 'xxx'
A_L>        dbPassword = System.getenv('DB_PASS') ?: 'xxx'
A_L>    }
A_L>}
A_L>



Ну значит, если ты в профиле dev, то перед запуском проекта надо установить соответсвующие переменные окружения: DB_URL, DB_USER, DB_PASS.
DB _URL должен направляться на localhost:5432, DB_USER и DB_PASS указаны в файле compose.yaml:

services:
  postgres:
    image: 'postgres:latest'
    environment:
      - 'POSTGRES_DB=xxx' <-- скорее всего в connection string (DB_URL) надо добавить имя базы, указанное здесь - читай доки постгреса
      - 'POSTGRES_PASSWORD=xxx' <-- здесь DB_PASS
      - 'POSTGRES_USER=xxx' <-- здесь  DB_USER
    ports:
      - '5432:5432'


EDIT: Я с java работал только из Android Studio. Подразумеваю, что ты умеешь запускать java проекты и выбирать профили.
Спасибо за внимание
Отредактировано 07.02.2024 8:30 Doom100500 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.