Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: "Docker"

on:
workflow_dispatch:

push:
branches: ["master"]

schedule:
- cron: "0 8 * * 1"

permissions:
contents: read

jobs:
test:
name: "Test"
runs-on: "ubuntu-latest"

steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Set up Docker Buildx"
uses: docker/setup-buildx-action@v3

- name: "Build image"
uses: docker/build-push-action@v6
with:
context: "."
load: true
tags: "dockette/pound:latest"

- name: "Test image"
run: "make test"

build:
name: "Build"
needs: ["test"]
uses: dockette/.github/.github/workflows/docker.yml@master
secrets: inherit
with:
image: "dockette/pound"
tag: "latest"
context: "."

docs:
name: "Docs"
runs-on: "ubuntu-latest"
needs: ["build"]
if: github.ref == 'refs/heads/master'

steps:
- name: "Checkout"
uses: actions/checkout@v4

- name: "Update Docker Hub description"
uses: peter-evans/dockerhub-description@v5
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: "dockette/pound"
33 changes: 33 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# AGENTS.md

## Project

Dockette Pound builds `dockette/pound`, a legacy Pound HTTP/HTTPS reverse proxy and load balancer image. The image listens on port `80` and uses `/etc/pound/config.cfg` copied from `pound/pound.cfg`.

## Images

- Default image: `dockette/pound:latest`.
- Build context: repository root `.` with `Dockerfile` and `pound/pound.cfg`.
- Base image: `dockette/debian:jessie`.
- The image installs the Debian Jessie `pound` package and starts `pound -f /etc/pound/config.cfg`.
- GitHub Actions builds `linux/amd64` for tests, then publishes `linux/amd64,linux/arm64` through the shared Dockette Docker workflow on `master` and the weekly schedule.

## Commands

- `make build` builds `${DOCKER_IMAGE}:${DOCKER_TAG}` from `.`.
- `make test` runs `pound -V` and validates `/etc/pound/config.cfg` with `pound -c -f` inside the built image.
- `make run` starts the image locally with `80:80` published.

## Testing Notes

- Prefer `make test` after Dockerfile or `pound/pound.cfg` changes.
- Use `make -n build test run` to dry-run command wiring without requiring Docker.
- The smoke test requires Docker and the image to be built first.

## Guidelines

- Keep changes focused on maintaining the legacy image; avoid broad modernization unless needed for build viability.
- Keep `Dockerfile`, `Makefile`, README, `pound/pound.cfg`, and `.github/workflows/docker.yml` aligned.
- Prefer `DOCKER_*` names for Docker-related Makefile variables.
- Place `.PHONY: <target>` directly above each Makefile target.
- Keep README badges and maintenance sections consistent with other Dockette image repos.
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
@AGENTS.md
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
DOCKER_IMAGE=dockette/pound
DOCKER_TAG?=latest

.PHONY: build
build:
docker build -t ${DOCKER_IMAGE}:${DOCKER_TAG} .

.PHONY: test
test:
docker run --rm ${DOCKER_IMAGE}:${DOCKER_TAG} pound -V
docker run --rm ${DOCKER_IMAGE}:${DOCKER_TAG} pound -c -f /etc/pound/config.cfg

.PHONY: run
run:
docker run --rm -it -p 80:80 ${DOCKER_IMAGE}:${DOCKER_TAG}
55 changes: 55 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<h1 align=center>Dockette / Pound</h1>

<p align=center>
<a href="https://github.com/dockette/pound/actions"><img src="https://github.com/dockette/pound/actions/workflows/docker.yml/badge.svg" alt="GitHub Actions"></a>
<a href="https://hub.docker.com/r/dockette/pound"><img src="https://img.shields.io/docker/pulls/dockette/pound.svg" alt="Docker Hub pulls"></a>
<a href="https://github.com/sponsors/f3l1x"><img src="https://img.shields.io/badge/sponsor-GitHub%20Sponsors-ea4aaa" alt="GitHub Sponsors"></a>
<a href="https://github.com/orgs/dockette/discussions"><img src="https://img.shields.io/badge/support-discussions-6f42c1" alt="Support/Discussions"></a>
</p>

<p align=center>
Legacy Docker image for <a href="https://github.com/graygnuorg/pound">Pound</a>, an HTTP/HTTPS reverse proxy and load balancer.
</p>

-----

## Usage

```bash
docker run --rm -it \
-p 80:80 \
dockette/pound:latest
```

The image starts Pound in the foreground with `/etc/pound/config.cfg`.

## Configuration

The bundled configuration listens on port `80` and forwards requests with host headers matching `*.local.dev` to backend host `app` on port `80`.

To use your own configuration:

```bash
docker run --rm -it \
-p 80:80 \
-v "$(pwd)/pound.cfg:/etc/pound/config.cfg:ro" \
dockette/pound:latest
```

## Legacy Constraints

This image is intentionally kept close to the original legacy setup. It uses the historical `dockette/debian:jessie` base image and Debian Jessie `pound` package, so changes should stay focused on keeping the existing image buildable and testable.

## Development

Build a local image before running tests or starting the container:

```bash
make build
make test
make run
```

## Maintenance

See [how to contribute](https://github.com/dockette/.github/blob/master/CONTRIBUTING.md) to this package. Consider to [support](https://github.com/sponsors/f3l1x) **f3l1x**. Thank you for using this package.