Replies: 4 comments 9 replies
-
This sounds really incredible. I'd love to see us flesh out the path forward for this! |
Beta Was this translation helpful? Give feedback.
-
Full credit for the Skaffold
Key to this experience is that Skaffold handles the deployment and is able to sync files to that environment. Three aspects worth calling out:
Limitations in our implementation is that the set of supported filetypes and file-watch mechanisms are hard-coded into the buildpacks. I've been thinking that we could allow users to describe a set of filetypes and a watch mechanism in the |
Beta Was this translation helpful? Give feedback.
-
I would love to see a version of the inner loop that does not create an image, but rather build and then launch within a single container. When measuring inner loop time around a local docker experience, a very large chunk of time was spent exporting the image to the daemon. We experimented with a process that mounted the code into the builder image and then kicked off The reason I like this idea is because it doesn't require kubernetes for local development and I think it could mean easier integration with VS Code's in-container workflows (local and remote), CodeSpaces, etc. It also means that if you wanted to use kubernetes pods as the platform for development, your nodes are ready faster due to only requiring the builder image + the source code. |
Beta Was this translation helpful? Give feedback.
-
FYI, this is what Paketo currently has on the roadmap in regards to using buildpacks in development. The work hasn't been implemented as of yet, but the details of the plan are in the doc. https://github.com/paketo-buildpacks/rfcs/blob/main/text/0032-reloadable-process-types.md |
Beta Was this translation helpful? Give feedback.
-
The Idea
Taking inspiration from
GOOGLE_DEVMODE
, let's discuss a standard way for a platform like pack to signal to buildpacks that they are being used in development, rather than to create a production image.Context
There have already been discussions about using buildpacks for development & testing. Heroku's Testpack API extends buildpacks to run automated tests. Similarly, Google extends its buildpacks for use in a developer's inner-loop via Skaffold. Tilt, another inner-loop orchestrator like Skaffold, includes an extension for pack. All this suggests a healthy appetite to use buildpacks during development in addition to using them to build images for production.
Today, running buildpacks after every change in development is slow. Skaffold uses a special flag
GOOGLE_DEVMODE
to signal to Google's buildpacks that the application is being built is intended for development. Introducing a CNB standard alternative to this flag, e.g.BP_MODE=development
orBP_DEVELOPMENT=true
, would open the door for other families of buildpacks, like Paketo, to introduce similar capablities.A few people I've had discussions with to learn about related prior work include: @jabrown85, @ekcasey, @natalieparellano, @briandealwis & @paulcwarren.
Beta Was this translation helpful? Give feedback.
All reactions