gpt4 book ai didi

bash - 无法从Docker容器退出

转载 作者:行者123 更新时间:2023-12-02 18:41:22 24 4
gpt4 key购买 nike

我有一个运行的容器

docker run -it --rm --name <container_name> <image>:<tag>

通常,我会进入容器终端,可以使用 exit命令从中退出。现在,我有一个DockerFile,它的结尾是一个运行简单bash脚本的入口点:
#!/usr/bin/env bash

# Add new user
groupadd -r $GROUP --gid $GROUPID
useradd -r $USER --uid $USERID --gid $GROUPID

# Launch application with new user
su - -c "python <path_to_script>/myscript.py" $USER

现在,一旦脚本结束,我希望从容器中退出,但是入口点bash脚本中的所有内容都会一次又一次地运行(例如运行10次)。

为什么我的容器有这种行为?

最佳答案

su manpage说:

-, -l, --login
Provide an environment similar to what the user would expect had the user logged in directly



它从您的 exit处生成另一个shell,以返回到父 container shell。

所以改变
su - -c "python <path_to_script>/myscript.py" $USER


su "$USER" -c "python <path_to_script>/myscript.py" 

可能是解决方案

SIDENOTE:当您的目标只是执行一些命令并完成工作时, --c都没有意义

关于bash - 无法从Docker容器退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38401909/

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