When I use waypoint cli, will it build docker images locally?

So, there is Waypoint Server and Waypoint cli.

When an app build stage happens, and if it is a Docker build, will it happen:

A. In the machine running the waypoing cli
B. In the server running the Waypoint Server

This is not articulated clearly in the documentation, please clarify.

If A is true, does it mean a Docker image of ~700MB will need to be transferred for deployment every single time?

Hi Meglio!

This is a great question! Thanks for raising it!

The build stage (Docker or Pack) is going to occur, in most cases, wherever the CLI is being run “locally”. That being said if you locally set the DOCKER_HOST environment variable to a remote Docker host, you can certainly influence where the build occurs - but again, most people will end up doing this locally.

From this point, if you are using the registry plugin to send the image to a repo (again, most commonly), this will result in the full image (700mb in your example) being pushed to the registry. Subsequent pushes should use some of the Docker layers to reduce the size so you shouldn’t necessarily be pushing 700mb each time. Only the changed layers.

The Waypoint server does not handle the actual building stage of the deployment. We will take a look at clarifying this out in the docs a bit better! Thanks for bringing this up, I can definitely see the confusion!

1 Like

Is it planned to make it possible for the Waypoint Server to act as a builder and docker registry, so that there are no traffic requirements to machines using the cli client?

In many cases, while working remotely (which is often the case in the post-COVID era), there are limits for outgoing traffic, both size and speed. So having all the builds happen in the same virtual private network that will run those images make a lot of sense to me.

What do you think?

Remote runners that are located somewhere other than where the API or CLI request comes in are supported, but are considered an “Advanced” deployment. The most common case is for the CLI to be the “Remote Runner”.

This is documented under Docs => Internals => Operation Execution. See if the pictures there help.