summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.envrc3
-rw-r--r--.gitignore1
-rw-r--r--Dockerfile.builder27
-rw-r--r--bookworm-backports.list1
-rwxr-xr-xtools/build-builder12
-rwxr-xr-xtools/build-caddy17
6 files changed, 61 insertions, 0 deletions
diff --git a/.envrc b/.envrc
new file mode 100644
index 0000000..0b76d9e
--- /dev/null
+++ b/.envrc
@@ -0,0 +1,3 @@
+PATH_add tools
+
+source_env_if_exists .envrc.local
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..b83d222
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/target/
diff --git a/Dockerfile.builder b/Dockerfile.builder
new file mode 100644
index 0000000..dbb1026
--- /dev/null
+++ b/Dockerfile.builder
@@ -0,0 +1,27 @@
+FROM debian:bookworm-slim
+
+RUN apt-get update \
+ && apt install -y \
+ debian-keyring \
+ debian-archive-keyring \
+ apt-transport-https \
+ ca-certificates \
+ && true
+
+COPY bookworm-backports.list /etc/apt/sources.list.d/bookworm-backports.list
+ADD https://dl.cloudsmith.io/public/caddy/xcaddy/debian.deb.txt /etc/apt/sources.list.d/caddy.list
+ADD https://dl.cloudsmith.io/public/caddy/xcaddy/gpg.key /opt/caddy/gpg.key
+RUN gpg \
+ --dearmor \
+ -o /usr/share/keyrings/caddy-xcaddy-archive-keyring.gpg \
+ /opt/caddy/gpg.key
+
+RUN apt-get update \
+ && apt-get install -y \
+ -t bookworm-backports \
+ golang-go \
+ xcaddy \
+ && true
+
+RUN mkdir /app
+WORKDIR /app
diff --git a/bookworm-backports.list b/bookworm-backports.list
new file mode 100644
index 0000000..1455dda
--- /dev/null
+++ b/bookworm-backports.list
@@ -0,0 +1 @@
+deb http://deb.debian.org/debian bookworm-backports main
diff --git a/tools/build-builder b/tools/build-builder
new file mode 100755
index 0000000..6a48cd1
--- /dev/null
+++ b/tools/build-builder
@@ -0,0 +1,12 @@
+#!/bin/bash -e
+
+## tools/build-builder
+##
+## Builds a Docker image that can build Caddy binaries for Debian.
+
+cd "$(dirname "$0")/.."
+
+docker build \
+ --tag caddy-builder:latest \
+ --file Dockerfile.builder \
+ .
diff --git a/tools/build-caddy b/tools/build-caddy
new file mode 100755
index 0000000..f20dccc
--- /dev/null
+++ b/tools/build-caddy
@@ -0,0 +1,17 @@
+#!/bin/bash -e
+
+## tools/build-caddy
+##
+## Builds Caddy from source.
+
+cd "$(dirname "$0")/.."
+
+[ -d target ] || mkdir target
+
+docker run \
+ --rm \
+ --interactive \
+ --tty \
+ --volume "$PWD/target:/app" \
+ caddy-builder:latest \
+ xcaddy build