On Sun, Nov 24, 2019 at 7:29 AM sebb <seb...@gmail.com> wrote:
>
> On Sun, 24 Nov 2019 at 01:31, Sam Ruby <ru...@intertwingly.net> wrote:
>
> > On Sat, Nov 23, 2019 at 7:15 PM sebb <seb...@gmail.com> wrote:
> > >
> > > The Puppet init.pp script [1] sets up several directories which are not
> > yet
> > > reflected in the Docker build, e.g. /srv/cache
> > >
> > > Where is the best place to set these up?
> >
> > Short answer: in the Dockerfile.
> >
> >
> /srv is dynamically mapped, so if Dockerfile creates /srv/cache won't it be
> overridden?
>
>
> > Longer answer:
> >
> > 1) Anything that is static and idempotent can and should be build in
> > the Dockerfile.  The theory is that you should be able to destroy a
> > container and rebuild it from the Dockerfile and end up with exactly
> > the same image.  In practice this isn't exactly true (apt-get update
> > may get newer versions of packages, for example), but is close enough
> > to be true in practice.  One thing that a Dockerfile can NOT depend on
> > is mounted file systems or environment variables.  docker-compose.yaml
> > can make use of environment variables.
>
>
>
> > 2) Anything that is in the container (e.g.. changes made by commands
> > invoked via RUN or EXEC) should be ephemeral.  If a container is
> > pruned, there should not be anything lost of significance.
> >
> > 3) Everything else should go into a volume as volumes have lives
> > outside of images and containers.  Host volumes are mounted, and on
> > macOS and Windows have performance characteristics of a remote file
> > system (e.g. nfs) whereas on Linux they have native mounted
> > performace.  Anonymous and named volumes have native performance on
> > all operating systems, but can't be directly accessed by the host
> > machine.
> >
> > Notes:
> >
> > 1) During development, the contents of the local clone of whimsy and
> > even the gems installed are generally not considered static, and hence
> > belong on a volume.
> >
> > 2) The current docker:entrypoint rake task contains only commands that
> > can be run fast and depend on things like contents of volume mounts
> > (e.g. the whimsy source code) or environment variables (the name of
> > the user's home directory).
> >
> >
> So would that be the place to set up /srv/cache ?

Oops.  Good catch!

- Sam Ruby

> > - Sam Ruby
> >
> > > [1]
> > >
> > https://github.com/apache/infrastructure-puppet/blob/deployment/modules/whimsy_server/manifests/init.pp#L178
> >

Reply via email to