не может создать и запустить приложение в docker compose. Задача 'bootRun' не найдена в root проекте 'gradle' - PullRequest
0 голосов
/ 23 февраля 2020

Spring Boot. Я строю и запускаю проект от Gradle.

gradlew bootRun

Успешная сборка и запуск. Хорошо.

Теперь я хочу собрать и запустить Docker compose. Вот мой Dockerfile:

FROM openjdk:8
FROM gradle
RUN gradle wrapper
RUN ./gradlew bootRun
ADD build/libs/eshop-1.0.0.jar eshop-1.0.0.jar
ENTRYPOINT ["java", "-jar", "eshop-1.0.0.jar"]

In docker -compose.yml

version: "3"

    services:
      server:
        build: .
        command: java -jar build/libs/eshop-1.0.0.jar
        ports:
          - 8090:8090

Теперь в Docker команда запуска инструмента выглядит следующим образом:

$ docker-compose build
Building server
Step 1/6 : FROM openjdk:8
 ---> 8c6851b1fc09
Step 2/6 : FROM gradle
 ---> 1fcd09a6bb3b
Step 3/6 : RUN gradle wrapper
 ---> Using cache
 ---> acf242fa68db
Step 4/6 : RUN ./gradlew bootRun
 ---> Running in 8c7c62db19f9
Downloading https://services.gradle.org/distributions/gradle-6.2-bin.zip
.........10%.........20%.........30%..........40%.........50%.........60%..........70%.........80%.........90%..........100%

Welcome to Gradle 6.2!

Here are the highlights of this release:
 - Dependency checksum and signature verification
 - Documentation links in deprecation messages
 - Shareable read-only dependency cache

For more details see https://docs.gradle.org/6.2/release-notes.html

Starting a Gradle Daemon (subsequent builds will be faster)

FAILURE: Build failed with an exception.

* What went wrong:
Task 'bootRun' not found in root project 'gradle'.

* Try:
Run gradlew tasks to get a list of available tasks. Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 1m 10s
ERROR: Service 'server' failed to build: The command '/bin/sh -c ./gradlew bootRun' returned a non-zero code: 1

Так почему я получаю ошибку?

1 Ответ

0 голосов
/ 29 февраля 2020

Мне нужно запустить мое приложение на клиентском компьютере с минимальными шагами.

эта работа для меня.

Документация:

FROM openjdk:8
ADD build/libs/myapps-1.0.0.jar myapps-1.0.0.jar
ENTRYPOINT ["java", "-jar", "myapps-1.0.0.jar"]

docker -compose.yml

 version: "3"

services:
  server:
    image: my_login/my_apps:1.0.0
    build: .
    ports:
      - 8090:8090

и теперь в Docker терминал:

В папке проекта :

     1. Create Dockerfile
     2. Create docker-compose.yml
     3. docker-compose build
     4. push image to repo:
        docker tag myapp my_login/myapp:1.0.0
        docker login -u "my_login" -p "some_my_pass" docker.io
        docker push my_login/eshop:myapp


 In some empty folder (in client machine):

 5. Pull from repo
    docker-compose pull
 6. start app by docker compose
    docker-compose up
 7. open web page on `localhost:8090`

и теперь это работа. Хорошо.

Так что клиенту нужно только иметь мой docker-compose.yml файл и выполнить две команды:

docker-compose pull

и

docker-compose up

Это правильный способ работы с docker сочинять?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...