Nearly all of our builders are based on ubuntu by default, unless some other basis is necessary, or unless we provide multiple builders based on ubuntu and some other distro (e.g., golang-project:ubuntu and golang-project:alpine).
Alpine generally produces smaller images, but it also means users have to use ash instead of bash, and in general know more about differences between Alpine and Ubuntu/Debian. Smaller builder images are nice, but are ultimately less meaningful since worker VMs pre-cache our official builders before receiving builds.
Unless there's some reason java/mvn and java/gradle must be based on openjdk:8-jre-alpine I think we should consider basing them on openjdk:8-jre for consistency, and to continue the precedent set by existing official builders. This image is based on buildpack-deps:stretch-curl which is based on debian:stretch.
If they must be based on openjdk:8-jre-alpine we should document somewhere why we made that decision to help future builder developers understand it.
Nearly all of our builders are based on
ubuntuby default, unless some other basis is necessary, or unless we provide multiple builders based onubuntuand some other distro (e.g.,golang-project:ubuntuandgolang-project:alpine).Alpine generally produces smaller images, but it also means users have to use
ashinstead ofbash, and in general know more about differences between Alpine and Ubuntu/Debian. Smaller builder images are nice, but are ultimately less meaningful since worker VMs pre-cache our official builders before receiving builds.Unless there's some reason
java/mvnandjava/gradlemust be based onopenjdk:8-jre-alpineI think we should consider basing them onopenjdk:8-jrefor consistency, and to continue the precedent set by existing official builders. This image is based onbuildpack-deps:stretch-curlwhich is based ondebian:stretch.If they must be based on
openjdk:8-jre-alpinewe should document somewhere why we made that decision to help future builder developers understand it.