这是我的config.json:
{
"env": "dev",
"dev": {
"projects" : {
"prj1": {
"dependencies": {},
"description": ""
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的bash命令:
PRJNAME='prj1'
echo $PRJNAME
jq --arg v "$PRJNAME" '.dev.projects."$v"' config.json
jq '.dev.projects.prj1' config.json
Run Code Online (Sandbox Code Playgroud)
输出:
prj1
null
{
"dependencies": {},
"description": ""
}
Run Code Online (Sandbox Code Playgroud)
所以$ PRJNAME是prj1,但第一次调用只输出null.
有人能帮我吗?
我是 Docker 的新手。我想通过使用 make 命令构建一个 C++ 库来构建一个 docker 镜像。我在 Dockerfile 中这样做的方式是
Dockerfile 代码写在下面。
我面临的问题是,即使删除了源代码,最终的图像尺寸还是很大。
由于 Dockerfile 的每一行都创建了不同的层,因此有一种方法可以使用 curl 或 wget 下载源代码,然后删除同一层中的源代码。但我不喜欢这个解决方案。
FROM alpine
RUN apk update && apk add <required_packages>
COPY source_code /tmp/source_code
RUN make -C /tmp/source_code && \
mkdir /libraries/
cp /tmp/lib/* /libraries/
rm -rf /tmp/*
Run Code Online (Sandbox Code Playgroud)
我只想最小化最终图像的大小。这是我这样做的正确方法还是有更好的方法?请帮忙。
Docker 镜像创建有多个层,我想将其转换为单层,是否有任何 docker build 命令可以实现此目的?我用谷歌搜索但找不到任何东西
我正在尝试生成 json 输出,其中输入来自 shell 变量。
happystring="Bob Ross"
unhappynumber1="1942"
unhappyboolean=true
JSON=$(jq -n \
--arg happystring "$happystring" --arg unhappynumber1 "$unhappynumber1" \
--arg unhappyboolean $unhappyboolean \
'
{
happystring: $happystring,
unhappynumber1: $unhappynumber1,
unhappyboolean: $unhappyboolean
}
')
echo "$JSON" | jq
Run Code Online (Sandbox Code Playgroud)
产生这个输出:
{
"happystring": "Bob Ross",
"unhappynumber1": "1942",
"unhappyboolean": "true"
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以用tonumber一个简单的过滤器将字符串转换为数字。但是,我无法弄清楚如何将字符串转换为布尔值。而且我在从 shell vars 采购和创建新的 json 作为输出时无法推理如何做。
期望的输出:
{
"happystring": "Bob Ross",
"unhappynumber1": 1942,
"unhappyboolean": true
}
Run Code Online (Sandbox Code Playgroud)
如果我在一个步骤中生成 json 并将其存储在 shell var 中,然后在第二个步骤中执行额外的转换,会更容易或更清楚吗?