Mvn clean install -PbuildDocker не работает

Это моя информация об ошибке:

Step 9/10 : EXPOSE ${EXPOSED_PORT}
│[INFO] ------------------------------------------------------------------------
│[INFO] Reactor Summary:
│[INFO]
│[INFO] spring-petclinic-microservices ..................... SUCCESS [ 0.246 s]
│[INFO] spring-petclinic-admin-server ...................... FAILURE [ 10.753 s]
│[INFO] spring-petclinic-monitoring ........................ SKIPPED
│[INFO] spring-petclinic-customers-service ................. SKIPPED
│[INFO] spring-petclinic-vets-service ...................... SKIPPED
│[INFO] spring-petclinic-visits-service .................... SKIPPED
│[INFO] spring-petclinic-config-server ..................... SKIPPED
│[INFO] spring-petclinic-discovery-server .................. SKIPPED
│[INFO] spring-petclinic-api-gateway ....................... SKIPPED
│[INFO] spring-petclinic-tracing-server .................... SKIPPED
│[INFO] ------------------------------------------------------------------------
│[INFO] BUILD FAILURE
│[INFO] ------------------------------------------------------------------------
│[INFO] Total time: 11.951 s
│[INFO] Finished at: 2018-07-11T10:30:27+08:00
│[INFO] Final Memory: 75M/651M
│[INFO] ------------------------------------------------------------------------
│[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default) on project spri
│ng-petclinic-admin-server: Exception caught: EXPOSE requires at least one argument -> [Help 1]
│[ERROR]
│[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
│[ERROR] Re-run Maven using the -X switch to enable full debug logging.
│[ERROR]
│[ERROR] For more information about the errors and possible solutions, please read the following artic
│les:
│[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
│[ERROR]
│[ERROR] After correcting the problems, you can resume the build with the command
│[ERROR] mvn -rf :spring-petclinic-admin-server

Похоже, что разоблачение требует аргумента. Что это должно быть?

Это файл докеров.

Я попытался установить EXPOSE_PORT на 22 и 8899, что не работает. Эта информация об ошибке:

[ERROR] Failed to execute goal com.spotify:docker-maven-plugin:0.4.13:build (default) on project spri
│ng-petclinic-admin-server: Exception caught: Request error: POST unix://localhost:80/build?buildargs=
│%7B%22ARTIFACT_NAME%22%3A%22spring-petclinic-admin-server-1.5.9%22%2C%22EXPOSED_PORT%22%3A%229090%22%
│7D&t=mszarlinski/spring-petclinic-admin-server: 500: HTTP 500 Internal Server Error -> [Help 1]
│[ERROR]

Спасибо!

Это дополнительный плагин к pom.xml об админ-сервере:

<profiles>
    <profile>
        <id>buildDocker</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>com.spotify</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>${docker.plugin.version}</version>
                </plugin>
            </plugins>
        </build>
    </profile>
</profiles>

Похоже, «EXPOSE требует хотя бы один аргумент».

user3272686 11.07.2018 06:48

Если ваш EXPOSE_PORT является переменной среды, вероятно, она установлена ​​неправильно.

KeyMaker00 11.07.2018 07:29

Можете ли вы поделиться фрагментом вашего файла pom.xml, в котором определен плагин, если вы можете поделиться им. Также глядя на этот плагин, кажется, что вы используете очень старую версию. последняя версия уже 1.1.1 отсюда github.com/spotify/docker-maven-plugin, и они также рекомендуют использовать другой плагин (github.com/spotify/dockerfile-maven) вместо этого, поскольку он в настоящее время находится в замороженном состоянии, за исключением исправлений ошибок.

darthbinamira 11.07.2018 10:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
3
338
2

Ответы 2

Вы также можете использовать Кливер и установить

<configuration>
    <container>
        <ports>
            <port>xxxx</port>
        </ports>
    </container>
</configuration>

Инструкция EXPOSE сообщает Docker, что контейнер прослушивает указанные сетевые порты во время выполнения. Вы можете указать, будет ли порт прослушивать TCP или UDP, и по умолчанию используется TCP, если протокол не указан.

EXPOSE <port> [<port>/<protocol>...]

Пример: EXPOSE 80/udp

Обратитесь к этому.

Также посмотри это.

Другие вопросы по теме