Я пытаюсь выполнить ./login.sh
как часть docker run
, теперь, когда я запускаю ./login.sh
в машине с Ubuntu, я вижу ответ об успехе, но когда я создаю docker изображение, я вижу вывод как sh: abc: unknown operand “invalid url”
Вот содержимое ./login.sh
#!/bin/sh
# Black Box Tester!
content=$(curl --location --request POST "https://api.platform.abc.com.
/auth/oauth/token" --header 'Content-Type: application/x-www-form-
urlencoded' \
--header 'Authorization: Basic V0zSA==' --data-raw 'grant_type=password&
username=test@example.com&password=123456'| jq -r '.domain_id' )
if [ $content = abc ]
then
echo “Valid Login Token”
else
echo “invalid url”
fi
, а вот содержимое docker file
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y curl \
&& apt-get -y install jq
FROM openjdk:8-jre-alpine
RUN apk --no-cache add curl jq
WORKDIR /opt
ADD login.sh /opt
RUN pwd \
&& find /opt
CMD ["./login.sh"]
Когда то же самое ./login.sh
я обычно выполняю в Ubuntu машина, я получаю успешный вывод как
ubuntu@ip-172-31-29-248:~$ ./login.sh
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left Speed
100 2034 100 1958 100 76 9458 367 --:--:-- --:--:-- --:--:--
9873
“Valid Login Token”
Вот вывод sudo docker run lots/loginimage
ubuntu@ip-172-31-29-248:~$ sudo docker run lots/loginimage
./login.sh: line 6: jq: not found
% Total % Received % Xferd Average Speed Time Time Time
Current
Dload Upload Total Spent Left Speed
92 2034 92 1807 100 76 7199 302 --:--:-- --:--:-- --:--:--
7501
curl: (23) Failed writing body (0 != 1024)
sh: abc: unknown operand
“invalid url”
Может кто-нибудь дать мне знать, почему скрипт входа, который является просто командой curl, успешно выполняется в Ubuntu машина, но тот же сценарий входа показывает еще условие в docker запустить?
Также я включил код в docker файл для загрузки и установки Json путь jq
, но почему изображение все еще говорит ./login.sh: line 6: jq: not found
??
Ваша помощь высоко ценится