by codefinger on 4/3/19, 4:37 PM with 97 comments
by zapita on 4/3/19, 6:58 PM
Honestly after years of stagnation, the most exciting work on container building is now coming out of Docker. Buildkit is amazing, a real hidden gem.
by jrockway on 4/3/19, 6:12 PM
FROM node:10 AS build
WORKDIR /foo
COPY . .
RUN npm i
RUN npx webpack
FROM nginx:whatever
COPY nginx.conf /etc/nginx/config.d/
COPY --from=build /foo/dist /srv
...
It's fine when you have one. Annoying when you have a couple. This isn't code that needs to be checked into the repository and updated. It needs to just work.The other thing I'd like to see is the ability to output multiple containers from one Dockerfile. There is so much wasted work where I have webpack stuff and a go application that run in separate containers but are built together. There is one Dockerfile like the above to build the static part. There is another to build the go binary and copy it to an almost-pristine alpine container (including dumb-init, cacerts, tzdata, and grpc_health_probe). I don't understand why I have to have two Docker files to do that.
by m463 on 4/4/19, 12:13 AM
It's one readable text file used to recreate an entire environment. It's sort of a picture worth a thousand command lines.
That said, I wish there was a way to get rid of all the && stuff, which is used to avoild writing a layer of the filesytem.
Why not have something like:
RUN foo
RUN bar
RUN bletch
LAYER
by choeger on 4/3/19, 7:59 PM
You could have the same issue by simply trying to rpmbuild your app. No really, you are just doing packaging. If you want more comfort, look into how redhat or Debian maintain their packages. They have similar problems and most likely they have mature solutions.
by jtwaleson on 4/3/19, 6:25 PM
by Perceptes on 4/3/19, 8:10 PM
by kevinsimper on 4/3/19, 8:01 PM
by benbristow on 4/3/19, 6:44 PM
If you want to scale in a pinch then it's a case of making some tiny tweaks and pushing to Heroku instead.
by markbnj on 4/3/19, 7:05 PM
by wmf on 4/3/19, 10:56 PM
Opinionated Platforms Are Risky: The CloudFoundry platform was more opinionated than some competing platforms in the market. In fact, the biggest debate between CloudFoundry and its direct competitors was about whether customers need opinionated platforms or not. CloudFoundry only supported 12 factor applications whereas platforms built on top of Kubernetes could support both stateful and stateless (12 factor) applications.
If you're building a stateless 12-factor app and there's a buildpack that does what you want, buildpacks are clearly better than lower-level Dockerfiles. But there's no buildpack for something like a database and there probably never will be, so the flexibility of directly building containers needs to exist.
by bryanrasmussen on 4/4/19, 8:46 AM
by yRetsyM on 4/3/19, 7:52 PM
by amai on 4/4/19, 9:35 AM
by caust1c on 4/3/19, 6:50 PM
Buildpacks fit nicely into the heroku way of doing things. But at any medium to large sized engineering organization, there's no way they could satisfy the requirements for even a simple majority of services that using a Dockerfile provides.
by onefuncman on 4/4/19, 8:52 AM
by pugworthy on 4/3/19, 6:28 PM
by Polyisoprene on 4/3/19, 7:58 PM
Yeah, throw that code over to the ops team. Let them figure stuff out themselves.
by mychael on 4/4/19, 1:20 AM
This is a solution in search of a problem. Please stop.
by npstr on 4/3/19, 7:05 PM