Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Make COSMOVISOR_ENABLED and START_CMD work as intended (#528)
* Make COSMOVISOR_ENABLED and START_CMD work as intended Teach the run.sh to use START_CMD if set, even when SNAPSHOT_PATH is unused (previously, it would exec whatever command line passed to the docker, or do nothing if none). This also fixes the case of COSMOVISOR_ENABLED=1, which sets START_CMD to start cosmovisor but then was not actually run before. * Make COSMOVISOR_ENABLED and START_CMD work as intended (take 2) Users generally want to: 1. Run the blockchain binary either as-is, -or- with snapshot.sh, -or- with cosmovisor. These are controlled `SNAPSHOT_PATH`, and `COSMOVISOR_ENABLED`. and then: 2. Be able to set the blockchain binary command to something else than the default "start". This can be done with `START_CMD` - to amend/override that command via environment variables without changes to deployment logic - e.g. docker-compose yml (unlike with command line args to "docker run ..."). So change the logic to be: "use rule 1 above for prefix, then if args exists then use them, else if `START_CMD` exists then use it, else use `start`". I amended the PR accordingly. * Make COSMOVISOR_ENABLED and START_CMD work as intended (take 3) With the "CMD $START_CMD" directive ("shell form") docker starts the container with "$ENTRYPOINT /bin/sh -c $START_CMD". This is bad because it breaks both cosmovisor and snapshot.sh (the latter has an explicit workaround). It is also unnecessary because the $START_CMD can (and should) be enforced by `run.sh`. Remove "CMD $START_CMD", since it is passed in the env and handled anyhow by `run.sh`. Replace with "CMD []" to un-inherit any "CMD" directives from parent images. * Default command for run.sh should be '$PROJECT_BIN start'
- Loading branch information