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"
|
"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.",
|
"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",
|
"version": "2.13.5",
|
||||||
"source": "https://github.com/NginxProxyManager/nginx-proxy-manager",
|
"source": "https://github.com/NginxProxyManager/nginx-proxy-manager",
|
||||||
"website": "https://nginxproxymanager.com",
|
"website": "https://nginxproxymanager.com",
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
"services": [
|
"services": [
|
||||||
{
|
{
|
||||||
"name": "npm",
|
"name": "npm",
|
||||||
"image": "jc21/nginx-proxy-manager:2.13.5",
|
"image": "git.alexzaw.dev/alexz/nginx-proxy-manager:2.13.5-interim",
|
||||||
"isMain": true,
|
"isMain": true,
|
||||||
"internalPort": 81,
|
"internalPort": 81,
|
||||||
"addPorts": [
|
"addPorts": [
|
||||||
|
|||||||
Reference in New Issue
Block a user