plugin-rewritebody
plugin-rewritebody copied to clipboard
Plugin silently fails to apply rewrites for some containers
This may be a duplicate of #13, but I'm not seeing the panic logs described in that issue. As with #13 I'm using CLI static config and Docker tag dynamic config.
Of the containers I've tried, these have rewrites applied correctly:
portainer/portainerplexinc/pms-dockerlinuxserver/jackettlinuxserver/delugelinuxserver/nzbhydra2
and these silently fail:
linuxserver/sonarrlinuxserver/radarrlinuxserver/sabnzbd
Here's a minimal docker-compose.yaml where portainer will have the theme.park stylesheet injected into responses and sonarr will not:
version: "3"
services:
traefik:
image: traefik:2.3.4
ports:
- 80:80
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
command:
- --log.level=DEBUG
- --accesslog=true
- --providers.docker=true
- --pilot.token=${TOKEN}
- --experimental.plugins.rewrite.modulename=github.com/traefik/plugin-rewritebody
- --experimental.plugins.rewrite.version=v0.3.1
portainer:
image: portainer/portainer
labels:
- traefik.http.routers.portainer.rule=Host(`portainer.localhost`)
- traefik.http.routers.portainer.middlewares=portainer
- traefik.http.middlewares.portainer.plugin.rewrite.rewrites.regex=</head>
- traefik.http.middlewares.portainer.plugin.rewrite.rewrites.replacement=<link rel="stylesheet" type="text/css" href="https://gilbn.github.io/theme.park/CSS/themes/portainer/plex.css"></head>
sonarr:
image: linuxserver/sonarr
labels:
- traefik.http.routers.sonarr.rule=Host(`sonarr.localhost`)
- traefik.http.routers.sonarr.middlewares=sonarr
- traefik.http.middlewares.sonarr.plugin.rewrite.rewrites.regex=</head>
- traefik.http.middlewares.sonarr.plugin.rewrite.rewrites.replacement=<link rel="stylesheet" type="text/css" href="https://gilbn.github.io/theme.park/CSS/themes/sonarr/plex.css"></head>
Here are the associated debug logs from creating the containers then loading the landing page of each service:
- Portainer: https://gist.github.com/IntermittentlyRupert/816c90222ee5dc3bcd4bbf15cbf851e2
- Sonarr: https://gist.github.com/IntermittentlyRupert/5def9f054a55f7961e716c815b2613ec
I am facing a similar issue with a private container. It doesnt panic, just silently doesnt apply the regex replace :(
The issue can be caused by gzip compression on the backend container.
This fork supports gzip compression on backends :
https://github.com/packruler/rewrite-body