- rename img→raw and gcp-img→gcp - support creating `docker` outputs, see https://github.com/moby/tool/tree/master/examples - less memory usage via streaming outputs - allow specification of multiple yaml files in a single command line, improves modularity - notary fixes and local cache, so does not pull as much - you now have to specify the full filename of the yaml file, you cannot omit the suffix Signed-off-by: Justin Cormack <justin.cormack@docker.com>
2.5 KiB
Using LinuxKit on Google Cloud Platform (GCP)
This is a quick guide to run LinuxKit on GCP. A lot of internal development and CI has used Google Cloud so the support is very good; other platforms will have similar support soon.
Setup
You have two choices for authentication with Google Cloud
- You can use Application Default Credentials
- You can use a Service Account
Application Default Credentials
You need the Google Cloud SDK
installed. Either install it from the URL or view brew
(on a Mac):
brew tap caskroom/cask
brew cask install google-cloud-sdk
Or via source code:
curl -SsL https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-151.0.0-darwin-x86_64.tar.gz
tar xzvf google-cloud-sdk-151.0.0-darwin-x86_64.tar.gz
./google-cloud-sdk/install.sh
Then, set up some environment variables (adjust as needed) and login:
export CLOUDSDK_CORE_PROJECT=<GCP project>
export CLOUDSDK_COMPUTE_ZONE=europe-west1-d
gcloud auth login
The authentication will redirect to a browser with Google login.
Also authenticate local applications with
gcloud auth application-default login
Service Account
You can use this guide to create a Service Account.
Make sure to download the credentials in JSON format and store them somewhere safe.
Build an image
When using moby build ...
to build an image, specify -output gcp
to
build an image in a format that GCP will understand. For example:
moby build -output gcp myprefix.yml
This will create a local myprefix.img.tar.gz
compressed image file.
Push image
Do linuxkit push gcp -project myproject-1234 -bucket bucketname myprefix.img.tar.gz
to upload it to the
specified bucket, and create a bootable image from the stored image.
Alternatively, you can set the project name and the bucket name using environment variables, CLOUDSDK_CORE_PROJECT
and CLOUDSDK_IMAGE_BUCKET
.
See the constant values defined in src/cmd/linuxkit/run_gcp.go
for the complete list of the supported environment variables.
Create an instance and connect to it
With the image created, we can now create an instance and connect to the serial port.
linuxkit run gcp -project myproject-1234 myprefix