Skip to content

Conversation

jstuder-gh
Copy link
Contributor

@jstuder-gh jstuder-gh commented Oct 29, 2017

Made a number of modifications to the Dockerfile in the repo:

  • Minimized the number of cache layers in final image (by reducing the
    number of Run commands)
    • This way Docker cannot reuse cache layers containing outdated
      package versions.
  • Purge build dependencies and apt cache data.
    • These files do not appear in final image due to minimal intermediate
      cache layers.
    • The resulting image is over 100 MB smaller as a result.
  • Update NodeJS to the latest stable release via the
    n script.
  • Added Test::META module and GNU aspell (used in tests).

Also added a .dockerignore file, so that files within the repo do not
get used in the build context.

Added Make targets that make the Docker containers a bit easier to work with.
Add info to CONTRIBUTING indicating how to use these targets.

Made a number of modifications to the Dockerfile in the repo:

* Minimized the number of cache layers in final image (by reducing the
  number of Run commands)
  * This way Docker will not reuse cache layers containing outdated
    package versions.
* Purge build dependencies and apt cache data.
  * These files do not appear in final image due to minimal intermediate
    cache layers.
  * The resulting image is over 100 MB smaller as a result.
* Update NodeJS to the latest stable release via the
  [n](https://github.com/tj/n) script.
* Added Test::META module and GNU aspell (used in tests).

Also added a .dockerignore file, so that files within the repo do not
get used in the build context.
Add targets that make the Docker containers a bit easier to work with.
Add info to CONTRIBUTING indicating how to use these targets.
@jstuder-gh
Copy link
Contributor Author

jstuder-gh commented Oct 29, 2017

I didn't want to commit something like this to the repo without either some review or the approval of other members and/or owners.

This greatly modifies the existing Dockerfile (what and why in description) in the repo and introduces a number of new targets to the Makefile.

@moritz
Copy link
Collaborator

moritz commented Oct 29, 2017

This looks reasonable to me, though I'm by no means a Docker expert.

@jstuder-gh
Copy link
Contributor Author

I'm no expert either. It's functional, but there may be better ways of doing things.

More than anything though, I just don't want to be committing things other members don't want or don't agree with. If the general consensus is people are okay with this, I will gladly commit it. Thanks for your feedback.

@moritz
Copy link
Collaborator

moritz commented Oct 29, 2017

@7ojo you committed the original Dockerfile. Any objections?

@7ojo
Copy link

7ojo commented Oct 30, 2017

No objections! Seems fine to me 👍 Using Makefile simplifies things nicely if you're not so familiar with docker

@7ojo 7ojo merged commit 4b72383 into Raku:master Oct 30, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants