A module's recipe starts from this image and invokes the compiler out of it, so the compiler had to be here. The same image was also what every module ran in — so every running container on every machine carried a TypeScript compiler it would never invoke. 23 of the 28 MB of libraries were that compiler.
An earlier attempt to prune the build tools produced a smaller image that nothing could be built on, and the comment explaining why they came back made a workaround look like a decision. The answer is two images rather than one image that is bad at both jobs.
Kept in one recipe deliberately: they must agree about the operating system, the language version and the library, and two files drift. The manifest names a stage each.
Measured in the lab: toolchain 129 MB, runtime 80 MB, where the single image was 280 MB. The runtime has the library and the loader and no compiler; the toolchain has the compiler. A module built against them comes out at 97 MB for postgres — which also carries the database client it provisions through — and 80 MB for the catalogue, which carries its own database driver. Both were around 300 MB before.
Needs mesh-control's target support, and mesh-catalog's modules naming both bases.
A module's recipe starts from this image and invokes the compiler out of it, so the compiler had to be here. The same image was also what every module *ran* in — so every running container on every machine carried a TypeScript compiler it would never invoke. 23 of the 28 MB of libraries were that compiler.
An earlier attempt to prune the build tools produced a smaller image that nothing could be built on, and the comment explaining why they came back made a workaround look like a decision. The answer is two images rather than one image that is bad at both jobs.
Kept in one recipe deliberately: they must agree about the operating system, the language version and the library, and two files drift. The manifest names a stage each.
Measured in the lab: toolchain 129 MB, runtime 80 MB, where the single image was 280 MB. The runtime has the library and the loader and no compiler; the toolchain has the compiler. A module built against them comes out at 97 MB for postgres — which also carries the database client it provisions through — and 80 MB for the catalogue, which carries its own database driver. Both were around 300 MB before.
Needs mesh-control's `target` support, and mesh-catalog's modules naming both bases.
A module's recipe starts from this image and invokes the compiler out of it, so
the compiler had to be here. The same image was also what every module ran in,
so every running container on every machine carried a compiler it would never
invoke: 23 of the 28 MB of libraries. An earlier attempt to prune the build
tools produced a smaller image that nothing could be built on, and the comment
defending their return made a workaround look like a decision.
One recipe, because the two must agree about the operating system, the language
version and the library, and two files drift.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
A module's recipe starts from this image and invokes the compiler out of it, so the compiler had to be here. The same image was also what every module ran in — so every running container on every machine carried a TypeScript compiler it would never invoke. 23 of the 28 MB of libraries were that compiler.
An earlier attempt to prune the build tools produced a smaller image that nothing could be built on, and the comment explaining why they came back made a workaround look like a decision. The answer is two images rather than one image that is bad at both jobs.
Kept in one recipe deliberately: they must agree about the operating system, the language version and the library, and two files drift. The manifest names a stage each.
Measured in the lab: toolchain 129 MB, runtime 80 MB, where the single image was 280 MB. The runtime has the library and the loader and no compiler; the toolchain has the compiler. A module built against them comes out at 97 MB for postgres — which also carries the database client it provisions through — and 80 MB for the catalogue, which carries its own database driver. Both were around 300 MB before.
Needs mesh-control's
targetsupport, and mesh-catalog's modules naming both bases.