Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

initial proof-of-concept in a container #11

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open

initial proof-of-concept in a container #11

wants to merge 1 commit into from

Commits on Sep 21, 2017

  1. initial proof-of-concept in a container

    This is a potential alternate way to look at distribution of a dev tool
    with dependencies using Docker.
    
    Instead of trying to vendor/bundle all the python/node dependency files
    in a waythat will work on most systems, just build a self-contained docker
    image. This frees us from having to worry at all about if/what versions of
    Python/NodeJS are on the machine.
    
    When the linter is updated, new images would be uploaded to Docker Hub
    (using that vs a private GCR since this is an open source project),
    end-users can
    `docker pull khanacademy/khan-linter:latest` (or a specific version/tag)
    
    This also would provide an alternate way to run on a server without
    worrying conflicting dependencies between this and the app it is linting.
    
    Note I haven't actually pushed the built image to Docker Hub yet, will
    do so if/after this is merged.
    
    Future enhancements
    -------------------
    For convenience of tagging docker images, it would be good to be more
    consistent with updating semantic version of releases, and then have
    the `make image` task here add the version number, to the image tag,
    so people could more easily reason about what version they have on
    their system.
    
    What would it mean to fully embrace this?
    -----------------------------------------
    In a mystical future world if the docker image was to become the "one
    true way" to use this, then there are some cleanup tasks that are
    probably worth looking at:
    
    - the py2 vs py3 branching and vendoring logic could be removed
      entirely.
    - the update_check can be removed entirely in favor of pulling the
      latest docker image (it currently won't fire within the container
      because its not in a git repo, but the code could be removed for
      cleanliness then.)
    - the big vendored directories can be removed from this git repo, as
      with the associated Make tasks.
    Matthew Rothenberg committed Sep 21, 2017
    Configuration menu
    Copy the full SHA
    94b6d8b View commit details
    Browse the repository at this point in the history