diff options
author | William Carroll <wpcarro@gmail.com> | 2020-01-31T16·29+0000 |
---|---|---|
committer | William Carroll <wpcarro@gmail.com> | 2020-01-31T16·29+0000 |
commit | 4e0b18506fd2d30af0006d2f3525a9d6d7b45424 (patch) | |
tree | f2a99cdb17a61890920b414f7d91065d6b6ebe7e /deploy/README.md | |
parent | 265d2029088a1f49c5716bcb3d96f71dd0845d7e (diff) |
Rename docker -> deploy
I think the name deploy is more representative of the purpose of this directory since docker is just one of a few tools that I'm using to deploy software.
Diffstat (limited to 'deploy/README.md')
-rw-r--r-- | deploy/README.md | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/deploy/README.md b/deploy/README.md new file mode 100644 index 000000000000..026dcc9c05c9 --- /dev/null +++ b/deploy/README.md @@ -0,0 +1,58 @@ +# 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 + +1. Use `nix-build` to create our Docker image for Cloud Run. + +```shell +> nix-build ./cloud_run.nix +``` + +This outputs a Docker image at `./result`. + +1. Load the built image (i.e. `./result`) into `docker` so that we can tag it + and push it to the Google Container Registry (i.e. GCR). + +```shell +> sudo docker load <./result +``` + +1. (Optionally) Run the image locally to verify its integrity. + +```shell +> sudo docker run -d -p 8080:4242 <name>:<tag> +``` + +1. Tag and push the image to GCR. + +```shell +> 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. + +1. 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: + +```shell +> sudo gcloud auth login --no-launch-browser +``` + +You must use `sudo` here since the `docker` invocations are prefixed with `sudo` +as well. |