gpt4 book ai didi

bash - 如何使用/bin/sh编写docker命令并将结果分配给变量?

转载 作者:行者123 更新时间:2023-12-02 20:35:19 29 4
gpt4 key购买 nike

我正在尝试编写应启动Docker容器的Shell脚本。
我有一个正在运行的示例,但它使用了/bin/bash:

#!/bin/bash

export NETWORK=jetty-svc-test
export IMAGE_TAG=jetty-test-app
export SVC_NAME=svc-test

clean_up() {
docker stop $SVC_NAME
docker network rm $NETWORK
}

docker network create $NETWORK
if [ $? -eq 1 ]; then
exit 1
fi

docker build --tag $IMAGE_TAG .
if [ $? -eq 1 ]; then
exit 1
fi

docker run -it --rm --name $SVC_NAME --network=$NETWORK -v $(pwd)/app:/app -d $IMAGE_TAG
if [ $? -eq 1 ]; then
exit 1
fi
sleep 5

export RES=$(docker run --rm --network=$NETWORK curlimages/curl:7.71.1 http://$SVC_NAME:8080 | docker run --rm -i stedolan/jq .)
export HEALTH_CHECK=$(echo "$RES" | docker run --rm -i stedolan/jq -r .status)

if [ "$HEALTH_CHECK" != "I am healthy" ]; then
clean_up
exit 1
fi

clean_up
但我需要在 #!/bin/sh中。例如,语句 export RES=$(..#!/bin/sh中不起作用。
我需要重写上面的脚本,因为 https://hub.docker.com/layers/docker/library/docker/19.03.12/images/sha256-d208a88b6afa09430a2f4becbc8dbe10bfdaeb1703f9ff3707ca96e89358a8e4?context=explore仅支持 #!/bin/sh,我想在docker:dind容器中运行上面的脚本。
如何使用/ bin / sh编写docker命令并将结果分配给变量?

最佳答案

您似乎在问如何重写

export variable=$(command)
export other="value"
POSIX sh的答案很简单
variable=$(command)
export variable

other="value"
export other
另请参见 Where is “export var=value” not available? (on Unix / Linux Stack Exchange)

关于bash - 如何使用/bin/sh编写docker命令并将结果分配给变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63175729/

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