例如,在Redis官方镜像中:
https://github.com/docker-library/redis/blob/master/2.8/docker-entrypoint.sh
#!/bin/bash
set -e
if [ "$1" = 'redis-server' ]; then
chown -R redis .
exec gosu redis "$@"
fi
exec "$@"
为什么不能像平常一样运行命令,而不需要在它们前面加上 exec?
exit "$@"
的替代方式是什么? - kat1330exec "$@"
吗?我没有太多关于Windows容器的经验 - 我猜您可以查看一下PowerShell,但如果您能在容器中使用WSL,那么它可能会像现在这样工作。 - Adrian Mouatexec
启动,为什么它不会接收到SIGTERM
信号呢?难道不应该由PID 1
的父Shell将信号转发给Redis吗? - oeter