gpt4 book ai didi

docker - 为什么docker运行时说Unknown操作数而同一shell脚本在ubuntu机器中完美运行

转载 作者:行者123 更新时间:2023-12-02 19:51:18 25 4
gpt4 key购买 nike

我现在尝试在ubuntu机器上运行./login.sh时将docker run作为./login.sh的一部分执行,我看到成功响应,但是当我创建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文件的内容
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"]

当我在Ubuntu机器中正常执行相同的 ./login.sh时,我得到如下成功输出
    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 run中的其他情况吗?

我也已经在docker文件中包含了一个代码以下载和安装Json路径 jq,但是为什么镜像仍然显示 ./login.sh: line 6: jq: not found

非常感谢您的帮助

最佳答案

创建docker时,您需要安装jq sudo apt-get install jq

关于docker - 为什么docker运行时说Unknown操作数而同一shell脚本在ubuntu机器中完美运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60535547/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com