Skip to main content

add some docker images

ID
361b977
date
2023-05-01 11:12:00+00:00
author
Alex Chan <alex@alexwlchan.net>
parent
56018b6
message
add some docker images
changed files
5 files, 51 additions

Changed files

docker/README.md (0) → docker/README.md (292)

diff --git a/docker/README.md b/docker/README.md
new file mode 100644
index 0000000..b25fa5c
--- /dev/null
+++ b/docker/README.md
@@ -0,0 +1,5 @@
+# docker
+
+These scripts are all Docker-based wrappers for tools of the same name (`cloc`, `rubocop`, and so on).
+
+I prefer to use Docker over installing packages directly on my system because I've had multiple headaches with Mac package managers, whereas Docker works fairly reliably for me.

docker/_ensure_docker_is_running (0) → docker/_ensure_docker_is_running (470)

diff --git a/docker/_ensure_docker_is_running b/docker/_ensure_docker_is_running
new file mode 100755
index 0000000..dd38336
--- /dev/null
+++ b/docker/_ensure_docker_is_running
@@ -0,0 +1,22 @@
+#!/usr/bin/env bash
+# This script checks to see if Docker is running, and if not, it starts
+# Docker.
+#
+# This is a prefix to several of my scripts that rely on Docker being
+# present; it saves me having to start Docker myself.
+
+set -o errexit
+set -o nounset
+
+if ! docker info > /dev/null 2>&1; then
+  echo "Starting Docker..."
+  open /Applications/Docker.app
+
+  for i in $(seq 60)
+  do
+    if docker info > /dev/null 2>&1; then
+      break
+    fi
+    sleep 1
+  done
+fi

docker/cloc (0) → docker/cloc (592)

diff --git a/docker/cloc b/docker/cloc
new file mode 100755
index 0000000..bdd5876
--- /dev/null
+++ b/docker/cloc
@@ -0,0 +1,20 @@
+#!/usr/bin/env bash
+
+set -o errexit
+set -o nounset
+
+_ensure_docker_is_running
+
+# Note: the --platform line is to silence this warning on Apple Silicon:
+#
+#     WARNING: The requested image's platform (linux/amd64) does not
+#     match the detected host platform (linux/arm64/v8) and
+#     no specific platform was requested
+#
+# Hopefully at some point cloc will start publishing ARM-based Docker images,
+# but until then it's not a big issue -- this isn't a CPU-intensive tool.
+docker run --rm \
+  --volume $(pwd):$(pwd) \
+  --workdir $(pwd) \
+  --platform linux/amd64 \
+  aldanial/cloc "$@"

rubocop (511) → docker/rubocop (538)

diff --git a/rubocop b/docker/rubocop
similarity index 97%
rename from rubocop
rename to docker/rubocop
index fe6d562..1cef37d 100755
--- a/rubocop
+++ b/docker/rubocop
@@ -7,6 +7,8 @@
 set -o errexit
 set -o nounset
 
+_ensure_docker_is_running
+
 if ! docker images | grep alexwlchan/rubocop >/dev/null
 then
   pushd ~/repos/pathscripts/docker

terraform/tflint (307) → terraform/tflint (334)

diff --git a/terraform/tflint b/terraform/tflint
index dabbdce..5b2c75b 100755
--- a/terraform/tflint
+++ b/terraform/tflint
@@ -7,6 +7,8 @@
 set -o errexit
 set -o nounset
 
+_ensure_docker_is_running
+
 docker run --rm --tty \
   --volume $(pwd):/data \
   ghcr.io/terraform-linters/tflint --recursive "$@"