Adding a README including my current method for deploying. See the README for more details. All of this is quite virgin and as such is subject to change.
1.3 KiB
1.3 KiB
Deployments
I'm documenting how I currently deploy things.
I'd like to automate this workflow as much as possible, and I intend to do just that. For now, I'm running things manually until I can design an generalization that appeals to me.
Dependencies
nix-builddockergcloud
Step-by-step
- Use
nix-buildto create our Docker image for Cloud Run.
> nix-build ./cloud_run.nix
This outputs a Docker image at ./result.
- Load the built image (i.e.
./result) intodockerso that we can tag it and push it to the Google Container Registry (i.e. GCR).
> sudo docker load <./result
- (Optionally) Run the image locally to verify its integrity.
> sudo docker run -d <name>:<tag>
- Tag and push the image to GCR.
> sudo docker tag <name>:<label> gcr.io/<google-cloud-project-id>/<name>:<latest>
TODO: Prefer using a command line tool like gcloud for these steps.
- Visit Google Cloud Run; create a new service with "Create Service"; select the uploaded Docker image from the "Container Image URL" field; click "Create" to deploy.
Notes
You may need to authorize gcloud by running the following:
> sudo gcloud auth login --no-launch-browser
You must use sudo here since the docker invocations are prefixed with sudo
as well.