npm: interim net-tools image (thin fork of jc21 2.13.5) for docker exec diagnostics
This commit is contained in:
19
apps/npm/build/Dockerfile
Normal file
19
apps/npm/build/Dockerfile
Normal file
@@ -0,0 +1,19 @@
|
||||
# INTERIM image for npm:runtipi.
|
||||
#
|
||||
# Thin fork: upstream jc21/nginx-proxy-manager (Debian bookworm) with network
|
||||
# diagnostic tools baked in, so `docker exec npm_runtipi-npm-1 ping|nslookup|
|
||||
# dig|traceroute|...` works and SURVIVES container recreation on Runtipi
|
||||
# restart/update (an in-container `apt install` does not persist).
|
||||
#
|
||||
# Stop-gap while the from-source build of the Gitea fork
|
||||
# (git.alexzaw.dev/alexz/nginx-proxy-manager) is set up. NPM itself is
|
||||
# byte-for-byte upstream here — only diagnostic packages are added, the
|
||||
# s6 entrypoint/behaviour is untouched.
|
||||
FROM jc21/nginx-proxy-manager:2.13.5
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
iputils-ping dnsutils traceroute mtr-tiny netcat-openbsd \
|
||||
iproute2 net-tools tcpdump telnet whois nmap wget \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
34
apps/npm/build/README.md
Normal file
34
apps/npm/build/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# NPM (Nginx Proxy Manager) — Runtipi app image
|
||||
|
||||
This app runs a **fork** of NginxProxyManager tailored for Runtipi.
|
||||
|
||||
## Current image: `:2.13.5-interim` (thin fork)
|
||||
|
||||
`Dockerfile` here is a stop-gap: upstream `jc21/nginx-proxy-manager:2.13.5` plus
|
||||
network diagnostic tools (`ping`, `dig`/`nslookup`, `traceroute`, `mtr`, `nc`,
|
||||
`ss`, `netstat`, `tcpdump`, `whois`, `nmap`, `telnet`, `wget`) so they are
|
||||
available via `docker exec` and persist across Runtipi restarts/updates. NPM
|
||||
itself is unchanged.
|
||||
|
||||
Build & push:
|
||||
|
||||
./build.sh
|
||||
|
||||
## Planned: from-source build (`:2.13.5` / `:latest`)
|
||||
|
||||
The real fork lives at `git.alexzaw.dev/alexz/nginx-proxy-manager` (mirror of
|
||||
upstream NginxProxyManager). Runtipi tailoring (the net tools above, plus future
|
||||
custom network-management UI) goes on the `runtipi` branch off the `v2.13.5`
|
||||
tag.
|
||||
|
||||
The from-source pipeline:
|
||||
|
||||
1. `git clone` the fork into `~/projects/nginx-proxy-manager`, checkout `runtipi`.
|
||||
2. `scripts/frontend-build` — builds the Vue frontend into `frontend/dist`
|
||||
(needs node/yarn; uses `NODE_OPTIONS=--openssl-legacy-provider`).
|
||||
3. `docker buildx build -f docker/Dockerfile` with
|
||||
`BASE_IMAGE=nginxproxymanager/nginx-full:certbot-node` and the `BUILD_*`
|
||||
args, tagging `git.alexzaw.dev/alexz/nginx-proxy-manager:2.13.5` + `:latest`.
|
||||
|
||||
Once that builds clean, point `docker-compose.json` at `:2.13.5` and retire the
|
||||
interim image.
|
||||
13
apps/npm/build/build.sh
Normal file
13
apps/npm/build/build.sh
Normal file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash
|
||||
# Build & push the INTERIM net-tools NPM image (thin fork of upstream jc21).
|
||||
# The from-source build (see README) will later supersede this with :2.13.5.
|
||||
set -euo pipefail
|
||||
|
||||
IMAGE_NAME="${IMAGE_NAME:-git.alexzaw.dev/alexz/nginx-proxy-manager}"
|
||||
IMAGE_TAG="${IMAGE_TAG:-2.13.5-interim}"
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
docker build "$@" -t "${IMAGE_NAME}:${IMAGE_TAG}" .
|
||||
docker push "${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
|
||||
echo "Pushed ${IMAGE_NAME}:${IMAGE_TAG}"
|
||||
@@ -10,7 +10,7 @@
|
||||
"network"
|
||||
],
|
||||
"description": "Nginx Proxy Manager enables you to easily forward to your websites running at home or otherwise, including free SSL, without having to know too much about Nginx or Letsencrypt.",
|
||||
"tipi_version": 2,
|
||||
"tipi_version": 3,
|
||||
"version": "2.13.5",
|
||||
"source": "https://github.com/NginxProxyManager/nginx-proxy-manager",
|
||||
"website": "https://nginxproxymanager.com",
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
"services": [
|
||||
{
|
||||
"name": "npm",
|
||||
"image": "jc21/nginx-proxy-manager:2.13.5",
|
||||
"image": "git.alexzaw.dev/alexz/nginx-proxy-manager:2.13.5-interim",
|
||||
"isMain": true,
|
||||
"internalPort": 81,
|
||||
"addPorts": [
|
||||
|
||||
Reference in New Issue
Block a user