71 lines
2.4 KiB
Markdown
71 lines
2.4 KiB
Markdown
# Release v1.0.0 - Initial Release: Reusable Unprivileged Nginx Redirect
|
|
|
|
We are pleased to announce **v1.0.0** of the Reusable Unprivileged Nginx Redirect container image! This release provides an ultra-lightweight, secure, non-root Docker solution for redirecting web traffic dynamically using environment variables.
|
|
|
|
---
|
|
|
|
## 🚀 Key Features
|
|
|
|
* **Non-Root & Secure Base**: Built on `nginxinc/nginx-unprivileged:alpine-slim` (~12 MB footprint, runs as UID 101).
|
|
* **Zero Overhead Template Engine**: Leverages native Nginx Docker template substitution (`envsubst`) on startup.
|
|
* **Drone CI Host Integration**: Pipeline builds directly onto the host server's Docker daemon via `/var/run/docker.sock`, making tagged images immediately available locally for `docker run` or `docker compose`.
|
|
* **Path & Query String Preservation**: Support for preserving request paths via `$request_uri` (e.g., `REDIRECT_TARGET="https://destination.com$request_uri"`).
|
|
* **Health Check Bypass Endpoint**: Built-in `/healthz` location returns `200 OK` for orchestrator probes without triggering redirects.
|
|
|
|
---
|
|
|
|
## ⚙️ Environment Variables
|
|
|
|
| Variable | Default Value | Description |
|
|
| :--- | :--- | :--- |
|
|
| `REDIRECT_TARGET` | `https://example.com` | Target URL/domain for redirection. Append `$request_uri` to preserve path & query parameters. |
|
|
| `REDIRECT_CODE` | `301` | HTTP status code for redirection (e.g., `301`, `302`, `307`, `308`). |
|
|
| `LISTEN_PORT` | `8080` | Internal listening port (unprivileged non-root standard). |
|
|
|
|
---
|
|
|
|
## 📦 Drone CI Pipeline
|
|
|
|
Builds are triggered automatically on `push` and `tag` events. The host image is tagged as:
|
|
- `redirect:latest`
|
|
- `redirect:<commit_sha>`
|
|
- `redirect:<git_tag>` (e.g., `redirect:v1.0.0`)
|
|
|
|
---
|
|
|
|
## 🛠️ Quick Usage Examples
|
|
|
|
### Single Container (Docker Run)
|
|
|
|
```bash
|
|
docker run -d \
|
|
--name redirect-domain \
|
|
-p 8080:8080 \
|
|
-e REDIRECT_TARGET="https://example.com\$request_uri" \
|
|
-e REDIRECT_CODE="301" \
|
|
redirect:v1.0.0
|
|
```
|
|
|
|
### Multi-Container Deployment (Docker Compose)
|
|
|
|
```yaml
|
|
services:
|
|
site-a-redirect:
|
|
image: redirect:v1.0.0
|
|
container_name: site-a-redirect
|
|
ports:
|
|
- "8081:8080"
|
|
environment:
|
|
- REDIRECT_TARGET=https://site-a.com
|
|
- REDIRECT_CODE=301
|
|
|
|
site-b-redirect:
|
|
image: redirect:v1.0.0
|
|
container_name: site-b-redirect
|
|
ports:
|
|
- "8082:8080"
|
|
environment:
|
|
- REDIRECT_TARGET=https://site-b.com$request_uri
|
|
- REDIRECT_CODE=302
|
|
```
|