I've been using this in CI to build and test my Dockerized app. On GCE billing is by the minute (after a 10 minute minimum) so it hasn't been too expensive.
I use gitlab multi-runners. It's a privileged mode docker container that spins up other containers on the host machine to run its builds. I have them sitting in an autoscaling group where if it hits 40% cpu usage another server running gitlab multi-runner starts and automatically registers to do more builds.
You can do this with any ci system though, not specific to gitlab.
You may also want to look at using Preemptible VMs [1] which are up to 50% cheaper as well.
[1] https://cloud.google.com/preemptible-vms/