ngageoint / scale

Processing framework for containerized algorithms
http://ngageoint.github.io/scale/
Apache License 2.0
105 stars 45 forks source link

Refactor Scale walkthrough to eliminate use of `ENTRYPOINT` #1890

Closed mattbanderson closed 4 years ago

mattbanderson commented 4 years ago

Pain Point? Please describe. The example in the Scale walkthrough uses an ENTRYPOINT script. This somewhat obfuscates the full command that is being run and is a pattern we would like to avoid in our example documentation.

Desired Solution Update the example in the Scale walkthrough to more closely match the Seed user guide example, which does not use ENTRYPOINT: https://ngageoint.github.io/seed-cli/#_sample_algorithm

Alternative / Workaround The example works as-is, but this will align our examples to be more consistent across documents.

cshamis commented 4 years ago

This can be confusing. Entrypoint and CMD[] are sooooo easy to confuse, ESPECIALLY when you’re passing Argument to an interpreter.

Take time to make sure it’s being explained VERY carefully.

On Jun 30, 2020, at 8:56 AM, Matt Anderson notifications@github.com wrote:

 Pain Point? Please describe. The example in the Scale walkthrough uses an ENTRYPOINT script. This somewhat obfuscates the full command that is being run and is a pattern we would like to avoid in our example documentation.

Desired Solution Update the example in the Scale walkthrough to more closely match the Seed user guide example, which does not use ENTRYPOINT: https://ngageoint.github.io/seed-cli/#_sample_algorithm

Alternative / Workaround The example works as-is, but this will align our examples to be more consistent across documents.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or unsubscribe.

mattbanderson commented 4 years ago

The pattern we are following is to use neither CMD nor ENTRYPOINT in the Dockerfile. As a result, the Seed CLI user must specify the full command with arguments in the Seed manifest. We felt this makes it more clear to the Seed user the full command that is being executed, rather than it being split between the Dockerfile (command) and Seed manifest (arguments).