Add docker/cloud_run.nix

I'm attempting to setup my blog using the following:
- Google Cloud Run: I whitelist a docker image that packages my application and
then Google runs it "statelessly" (i.e. without persistence). The stateless part
should be fine for the time being.
- Nix: Using `<nixpkgs>.dockerTools.buildLayeredImage` to output docker images
from Nix expressions.
- Docker: Upload the output image from the Nix expressions and upload it to
Google Container Registry from which it can be run from Google Cloud Run.

Some helpful commands:

```shell
> sudo gcloud auth login
> nix-build ./docker/cloud_run.nix
> sudo docker image import ./result
> sudo docker tag <name> gcr.io/<google-cloud-project-id>/<name>:<tag>
> sudo docker push gcr.io/<google-cloud-project-id>/<name>:<tag>
```

I'm unsure if Google Cloud Run is my desired end goal, but it may help me
publish a blog faster than setting up a Kubernetes cluster, which is what I'd
ultimately like to do. Cloud Run should be cheaper financially and time-wise.
This commit is contained in:
William Carroll 2020-01-28 00:00:05 +00:00
parent af26b6a181
commit bacaa0ca8a

9
docker/cloud_run.nix Normal file
View file

@ -0,0 +1,9 @@
# Attempting to build a Docker image with Nix to run using Google Cloud Run.
{ pkgs ? import <nixpkgs> {}, ... }:
pkgs.dockerTools.buildLayeredImage {
name = "mysql";
tag = "latest";
config.Cmd = [ "${pkgs.mysql}/bin/mysqld" ];
maxLayers = 120;
}