之前还疑惑部署方式改成kamal后怎么运行数据库的创建和迁移,答案在rails生成的dockerfile里,其中有一行 ENTRYPOINT ["/rails/bin/docker-entrypoint"] 而这个文件里的内容是

#!/bin/bash -e

# If running the rails server then create or migrate existing database
if [ "${1}" == "./bin/rails" ] && [ "${2}" == "server" ]; then
  ./bin/rails db:prepare
fi

exec "${@}"

这个文件会判断当前运行的是否是rails应用,是的话会执行db:prepare