8ad51b24dd
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-build
docker
gcloud
Step-by-step
- Use
nix-build
to 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
) intodocker
so 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.