Выполните curl и введите значение curl в файл окружения в Docker - PullRequest
0 голосов
/ 25 сентября 2018

Ниже приведено содержимое моего файла Docker

FROM openjdk:8-jre-alpine
ENV SPRING_OUTPUT_ANSI_ENABLED=ALWAYS \
    JHIPSTER_SLEEP=20

# add directly the war
ADD *.war /app.war

VOLUME /tmp
EXPOSE 8081 5701/udp
RUN curl  http://xxx.xxx.xxx.xxx:xxxx/api/startup?lic_key=337075598591269d15xxxxxxxx23fds > /root/tmp_var
RUN export var=$(cat /root/tmp_var)
ENV status="${var}"
CMD if [ "${status}" = "fail" ] ; then exit 1 ; else CMD echo "The application will start in ${JHIPSTER_SLEEP}s...${var} .... ${status}" && sleep ${JHIPSTER_SLEEP} && java -Djava.security.egd=file:/dev/./urandom -jar /app.war ; fi

В приведенном выше коде curl возвращает значение success или fail.Если curl возвращает ошибку, мое приложение не должно запускаться, а если curl возвращает успех, то мое приложение должно запускаться.В приведенном выше коде curl не выполняется и выдает ошибку при создании изображения.Ошибка / bin / sh -c curl завершена с возвращенным кодом 127

Пожалуйста, дайте мне знать, где я получаю ошибку

С уважением, Сатьянвеш

1 Ответ

0 голосов
/ 25 сентября 2018

Образ openjdk: 8-jre-alpine не включает команду curl.Вам нужно установить его перед запуском.

RUN apk update && apk --no-cache add curl
RUN curl http://xxx.xxx

Дополнительные примечания. Это контент, о котором я говорил в комментарии.Это пример, и я не подтвердил, что он действительно может быть выполнен.

Подготовьте сценарий оболочки с именем entrypoins.sh в качестве точки входа.

curl  http://xxx.xxx.xxx.xxx > /root/tmp_var
export var=$(cat /root/tmp_var)
status="${var}"
if [ "${status}" = "fail" ] ; then
  exit 1
else
  echo "The application will start in ${JHIPSTER_SLEEP}s...${var} .... ${status}"
  sleep ${JHIPSTER_SLEEP}
  java -Djava.security.egd=file:/dev/./urandom -jar /app.war
fi

Затем вызовите его повключая его в Dockerfile.

ADD entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
CMD /entrypoint.sh
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...