docker中指定入口点的函数,确实有一点技巧。准确来说,它是应该执行的第一条语句。cmd 其实也是交entrypoint点来接管的,只不过,cmd的命令,一般是交给bash -c。
例子
下面是收集的一些常见镜像中的例子。
registry
#!/bin/sh
set -e
case "$1" in
*.yaml|*.yml) set -- registry serve "$@" ;;
serve|garbage-collect|help|-*) set -- registry "$@" ;;
esac
exec "$@"