The grate Dockerfile uses the shell form of ENTRYPOINT:
The shell form of ENTRYPOINT ignores any CMD or docker run command line arguments, which means that users running grate via Docker can't easily add extra command line flags to the ones that are executed by default. By contrast, Command line arguments to docker run <image> will be appended after all elements in an exec form ENTRYPOINT. As a result, switching to the exec form of ENTRYPOINT would enable users to concisely add additional flags to the normal command, with all of its arguments and reading of env vars.
As a motivating example, it would allow easily adding --warnandignoreononetimescriptchanges to enable editing already-run migrations that are under development, without the user needing to manually delete rows from the grate.ScriptsRun table.
P.S. Thanks for grate!
The grate Dockerfile uses the shell form of ENTRYPOINT:
grate/installers/docker/Dockerfile
Line 25 in 6226b28
The shell form of
ENTRYPOINTignores anyCMDordocker runcommand line arguments, which means that users running grate via Docker can't easily add extra command line flags to the ones that are executed by default. By contrast, Command line arguments todocker run <image>will be appended after all elements in an exec formENTRYPOINT. As a result, switching to the exec form of ENTRYPOINT would enable users to concisely add additional flags to the normal command, with all of its arguments and reading of env vars.As a motivating example, it would allow easily adding
--warnandignoreononetimescriptchangesto enable editing already-run migrations that are under development, without the user needing to manually delete rows from the grate.ScriptsRun table.P.S. Thanks for grate!