chore: speed up builds by breaking out dev-container again

This commit is contained in:
41666 2020-10-11 06:26:26 -04:00
parent 2bb7d8666d
commit 9e6a942018
6 changed files with 1 additions and 5 deletions

44
.devcontainer/BUILD.bazel Normal file
View file

@ -0,0 +1,44 @@
load("//:hack/publish.bzl", "publish")
load("@io_bazel_rules_docker//docker/util:run.bzl", "container_run_and_commit_layer")
load("@io_bazel_rules_docker//container:container.bzl", "container_image")
container_run_and_commit_layer(
name = "bazel-layer",
commands = [
"go get -u github.com/bazelbuild/bazelisk",
"ln /go/bin/bazelisk /usr/bin/bazel",
"go get -u github.com/bazelbuild/buildtools/...",
],
image = "@devcontainergo//image",
)
container_run_and_commit_layer(
name = "node-layer",
commands = [
"su vscode -c 'source /usr/local/share/nvm/nvm.sh && nvm install lts/* 2>&1'",
],
image = "@devcontainergo//image",
)
container_image(
name = "dev-container",
base = "@devcontainergo//image",
layers = [
":bazel-layer",
":node-layer",
],
)
publish(
name = "publish-dev-container",
image = ":dev-container",
service = "dev-container",
)
publish(
name = "publish-dev-container-dockerhub",
image = ":dev-container",
prefix = "roleypoly/",
registry = "index.docker.io",
service = "dev-container",
)

24
.devcontainer/README.md Normal file
View file

@ -0,0 +1,24 @@
# Dev Container
This package houses the dev-container image.
It includes:
- go (1.15.2)
- bazel (latest via bazelisk)
- node (latest lts via nvm)
As well as any other tooling within VSCode Dev Containers.
## Building
To build and use locally,
```sh
bazel run //srv/dev-container && docker run -it --rm bazel/src/dev-container:dev-container
```
To just use, this is published to two registries. There is no effective difference, except that GitHub's registry requires login, and Docker Hub does not.
- `docker pull roleypoly/dev-container:main`
- `docker pull docker.pkg.github.com/roleypoly/roleypoly/dev-container:main`