нет такого файла или каталога - PullRequest
1 голос
/ 25 февраля 2020

Я создаю docker образ из приложения для микронавтов.

Но всякий раз, когда я запускаю команду docker build

docker build -f Dockerfile -t micronaut .

, я получаю эту ошибку

/bin/sh: /bin/gu: No such file or directory

В любом случае, вот содержимое моего docker файла:

FROM oracle/graalvm-ce:20.0.0-java11 as graalvm
RUN $GRAALVM_HOME/bin/gu install native-image

COPY . /home/app/micronautguide
WORKDIR /home/app/micronautguide

RUN $GRAALVM_HOME/bin/native-image --no-server -cp build/libs/complete-*-all.jar

FROM frolvlad/alpine-glibc
RUN apk update && apk add libstdc++
EXPOSE 8080
COPY --from=graalvm /home/app/micronautguide/micronautguide /micronautguide/micronautguide
ENTRYPOINT ["/micronautguide/micronautguide", "-Xmx68m"]

Хотя при запуске команды gu из терминала работает.

Ответы [ 2 ]

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

Ваш контекст не содержит RUN $GRAALVM_HOME/bin/gu. Что такое $GRAAL_VM_HOME? Какой бы ни была эта переменная, она устанавливается как ноль. Кроме того, $GRAALVM_HOME/bin/gu должен быть частью docker изображения.

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

$GRAALVM_HOME не существует в контейнере oracle / graalvm-ce: 20.0.0-java11. Таким образом, заставьте suer указать правильный путь. В данном случае это /bin/gu

Я думаю, $GRAALVM_HOME - это переменная, которую вы используете на локальном компьютере, а gu tool уже установлена ​​и доступна в / bin в образе docker. Таким образом, я сохранил $GRAALVM_HOME без изменений на втором этапе сборки.

Итак, файл Docker должен быть таким, как показано ниже,

FROM oracle/graalvm-ce:20.0.0-java11 as graalvm
RUN /bin/gu install native-image

COPY . /home/app/micronautguide
WORKDIR /home/app/micronautguide

RUN /bin/native-image --no-server -cp build/libs/complete-*-all.jar

FROM frolvlad/alpine-glibc
RUN apk update && apk add libstdc++
EXPOSE 8080
COPY --from=graalvm /home/app/micronautguide/micronautguide /micronautguide/micronautguide
ENTRYPOINT ["/micronautguide/micronautguide", "-Xmx68m"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...