Comment by m463

4 months ago

seems like all this was part of a long evolution.

I think the whole thing has been levels of abstraction around a runtime environment.

in the beginning we had the filesystem. We had /usr/bin, /usr/local/bin, etc.

then chroot where we could run an environment

then your chgroups/namespaces

then docker build and docker run

then swarm/k8s/etc

I think there was a parallel evolution around administration, like configure/make, then apt/yum/pacman, then ansible/puppet/chef and then finally dockerfile/yaml

The irony is that dockerfile/yaml contains so much ugly bash code nowadays that it feels like we are back at configure/make stage.

  • Luckily, no Dockerfile is ever as bad as old "configure" scripts were.

    As long I never have to worry about configure snippets that deal with Sun's CC compiler from 1990's, or with gcc-3, I will be happy.

  • If you are talking about the

      RUN  foo && \
           bar && \
           baz
    

    thing, I completely agree.

    I've always wondered if there could be something like:

      LAYER
      RUN foo
      RUN bar
      RUN baz
      LAYER
    

    to accomplish something similar, or maybe:

      RUN foo
      AND bar
      AND baz

    • There are also health/liveness checks, entry point code, sometimes embedded right in the Helm templates.