Leopold Schabel | 2983d72 | 2019-10-23 12:16:42 +0200 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | set -euo pipefail |
| 3 | |
| 4 | # Our local user needs write access to /dev/kvm (best accomplished by |
| 5 | # adding your user to the kvm group). |
| 6 | if ! touch /dev/kvm; then |
| 7 | echo "Cannot write to /dev/kvm - please verify permissions." |
| 8 | exit 1 |
| 9 | fi |
| 10 | |
| 11 | # The KVM module needs to be loaded, since our container is unprivileged |
| 12 | # and won't be able to do it itself. |
| 13 | if ! [[ -d /sys/module/kvm ]]; then |
| 14 | echo "kvm module not loaded - please modprobe kvm" |
| 15 | exit 1 |
| 16 | fi |
| 17 | |
| 18 | # Rebuild base image |
Hendrik Hofstadt | 0d7c91e | 2019-10-23 21:44:47 +0200 | [diff] [blame] | 19 | podman build -t nexantic-builder build |
Leopold Schabel | 2983d72 | 2019-10-23 12:16:42 +0200 | [diff] [blame] | 20 | |
| 21 | # Set up SELinux contexts to prevent the container from writing to |
| 22 | # files that would allow for easy breakouts via tools ran on the host. |
| 23 | chcon -R system_u:object_r:container_file_t:s0 . |
| 24 | chcon -R unconfined_u:object_r:user_home_t:s0 \ |
| 25 | .arcconfig .idea .git |
| 26 | |
Leopold Schabel | 052af2d | 2019-11-06 02:21:53 +0000 | [diff] [blame^] | 27 | # Keep this in sync with ci.sh: |
| 28 | |
Hendrik Hofstadt | 3e6018f | 2019-10-28 21:29:42 +0100 | [diff] [blame] | 29 | podman pod create --name nexantic |
| 30 | |
Leopold Schabel | 3ea7070 | 2019-10-23 16:40:06 +0200 | [diff] [blame] | 31 | # TODO(leo): mount .cache/bazel on a volume (waiting for podman issue to be fixed) |
| 32 | # https://github.com/containers/libpod/issues/4318 |
Leopold Schabel | 2983d72 | 2019-10-23 12:16:42 +0200 | [diff] [blame] | 33 | podman run -it -d \ |
| 34 | -v $(pwd):/work \ |
Leopold Schabel | 043daa5 | 2019-10-28 11:48:45 +0000 | [diff] [blame] | 35 | -v smalltown-gopath:/user/go/pkg \ |
| 36 | -v smalltown-gobuildcache:/user/.cache/go-build \ |
| 37 | -v smalltown-bazelcache:/user/.cache/bazel/_bazel_root/cache \ |
| 38 | --tmpfs=/user/.cache/bazel:exec \ |
Leopold Schabel | 2983d72 | 2019-10-23 12:16:42 +0200 | [diff] [blame] | 39 | --device /dev/kvm \ |
Leopold Schabel | 7afd390 | 2019-10-23 12:16:57 +0200 | [diff] [blame] | 40 | --privileged \ |
Hendrik Hofstadt | 3e6018f | 2019-10-28 21:29:42 +0100 | [diff] [blame] | 41 | --pod nexantic \ |
Hendrik Hofstadt | 0d7c91e | 2019-10-23 21:44:47 +0200 | [diff] [blame] | 42 | --name=nexantic-dev \ |
| 43 | nexantic-builder |
Hendrik Hofstadt | 3e6018f | 2019-10-28 21:29:42 +0100 | [diff] [blame] | 44 | |
| 45 | podman run -it -d \ |
| 46 | --pod nexantic \ |
| 47 | --ulimit nofile=262144:262144 \ |
| 48 | --name=nexantic-cockroach \ |
| 49 | cockroachdb/cockroach:v19.1.5 start --insecure |