lando / docs

The main docs site for Lando
https://docs.lando.dev/
GNU General Public License v3.0
20 stars 56 forks source link

Allow specifying a patch version of a docker image in service type #82

Closed aleksijohansson closed 6 years ago

aleksijohansson commented 6 years ago

Specifying the docker image version in the service type in .lando.yml allows for python for example to only point versions like 3.6 and not patch versions like 3.6.5. This makes docker pull the python:3.6-jessie tag of the python image. That tag is not a static tag which results different developers having different version of python. I propose the possibility to specify the patch version of the image in the service type in .lando.yml to ensure consistent development environments. The worst part of this is that the issue is not easy to detect because there is no clear indication of the differences in environments. Another option would be to at least provide the option to easily pull latest version of the dynamic python:3.6-jessie tag, but I would prefer the option to define patch versions instead. Pulling the latest version of an image could be an additional flag to the rebuild command or a completely separate command. It is possible to manually pull the new version of the docker image with docker, but that leaves the existing image (which is probably in use) without a tag and cleaning up images without tags is maybe exactly the kind of complexity we don't want to have with the otherwise so easy to use tool Lando so implementing a way to pull newer versions of images might be not such a good idea which gets us back to the preferred possibility to specify the patch version in the service type.

Here is an example of the proposed syntax:

name: python
services:
  appserver:
    type: python:3.6.5
dustinleblanc commented 6 years ago

@aleksijohansson you should be able to specify the exact image via a service override.

That said, being more specific here is probably useful, though I believe you mean patch release, not minor (major.minor.patch). We'll see how much interest/need there is for this.

aleksijohansson commented 6 years ago

@dustinleblanc Thanks for reply. Using a service override is actually a viable option for me, I should have thought of that. The only downside for someone could be the added complexity in the .lando.yml and the initial confusion when first switching to Lando from using plaing docker for example.

You're completely right, I meant patch release. I'll update the description of the issue accordingly.

pirog commented 6 years ago

@aleksijohansson i dont think we will support this straight up because its just currently impossible for us to "officially" support so many versions. That said, since we use official docker images for most of our stuff (and these mostly all have "patch" versions) we should spin up an example of how to do this and mention it as a "not officially supported" but "use at your own risk" option on the relevant services pages

pirog commented 6 years ago

ok @aleksijohansson @dustinleblanc this should be fixed and ive documented it (which links to a working example) over here https://docs.devwithlando.io/services/php.html#using-a-dockerfile

pirog commented 6 years ago

whoops, posted this on the wrong issue! ignore the above.

pirog commented 6 years ago

@aleksijohansson ok ive added docs on how to do this on every service page as is applicable. here is an example for nginx https://docs.devwithlando.io/services/nginx.html

aleksijohansson commented 6 years ago

@pirog Nginx example looks good! I don’t know if you meant to add the same nginx example to all service pages since now for example on the python page you also have the nginx example? I does the job of explaining how to use patch versions yes, but might be confusing.

pirog commented 6 years ago

yeah i understand that but maintaining a separate example for each service is difficult. Feel free to submit a PR that provides more contextually relevant examples if you want!

On Thu, May 17, 2018 at 12:48 AM, Aleksi Johansson <notifications@github.com

wrote:

@pirog https://github.com/pirog Nginx example looks good! I don’t know if you meant to add the same nginx example to all service pages since now for example on the python page you also have the nginx example? I does the job of explaining how to use patch versions yes, but might be confusing.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lando/lando/issues/890#issuecomment-389743574, or mute the thread https://github.com/notifications/unsubscribe-auth/AAri0ETYlLngz3NFJom99gH0h_wcHjB6ks5tzQE5gaJpZM4TQVDr .

aleksijohansson commented 6 years ago

I think the current example does the job.