From f8c699d79aa71f52d438ea9c7e83456504ffe566 Mon Sep 17 00:00:00 2001
From: Eric Frias <efrias@syncad.com>
Date: Tue, 19 Nov 2024 21:37:02 +0000
Subject: [PATCH] Disable the postgrest rewriter's nginx http_rewrite engine
 logs by default, allow them to be enabled by an environment variable
 REWRITE_LOG=ON

---
 Dockerfile.rewriter                                |  5 ++++-
 ...conf => reputation_tracker_nginx.conf.template} |  5 ++++-
 docker/rewriter_entrypoint.sh                      | 14 ++++++++++++++
 3 files changed, 22 insertions(+), 2 deletions(-)
 rename docker/{reputation_tracker_nginx.conf => reputation_tracker_nginx.conf.template} (78%)
 create mode 100755 docker/rewriter_entrypoint.sh

diff --git a/Dockerfile.rewriter b/Dockerfile.rewriter
index 9cd0c1c..d46fa11 100644
--- a/Dockerfile.rewriter
+++ b/Dockerfile.rewriter
@@ -1,7 +1,10 @@
 FROM openresty/openresty:alpine AS without_tag
 
-COPY docker/reputation_tracker_nginx.conf /usr/local/openresty/nginx/conf/nginx.conf
+COPY docker/reputation_tracker_nginx.conf.template /usr/local/openresty/nginx/conf/nginx.conf
 COPY rewrite_rules.conf /usr/local/openresty/nginx/conf/rewrite_rules.conf
+COPY docker/rewriter_entrypoint.sh /entrypoint.sh
+
+CMD ["/entrypoint.sh"]
 
 ARG BUILD_TIME
 ARG GIT_COMMIT_SHA
diff --git a/docker/reputation_tracker_nginx.conf b/docker/reputation_tracker_nginx.conf.template
similarity index 78%
rename from docker/reputation_tracker_nginx.conf
rename to docker/reputation_tracker_nginx.conf.template
index c3b3ea6..c955343 100644
--- a/docker/reputation_tracker_nginx.conf
+++ b/docker/reputation_tracker_nginx.conf.template
@@ -16,7 +16,10 @@ http {
 
             location / {
                     include rewrite_rules.conf;
-                    rewrite_log on;
+                    # ${REWRITE_LOG} will be replaced by the docker entrypoint script.
+                    # Set REWRITE_LOG=on in the environment to enable rewrite logging,
+                    # otherwise it will remain disabled
+                    ${REWRITE_LOG}
 
                     proxy_pass  http://reputation-tracker-postgrest:3000;  # my PostREST is  here!
 
diff --git a/docker/rewriter_entrypoint.sh b/docker/rewriter_entrypoint.sh
new file mode 100755
index 0000000..0072e77
--- /dev/null
+++ b/docker/rewriter_entrypoint.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Default value for REWRITE_LOG is off, unless explicitly set to 'on'
+if [ "$REWRITE_LOG" = "on" ]; then
+    REWRITE_LOG="rewrite_log on;"
+else
+    REWRITE_LOG="# rewrite_log off;"
+fi
+
+# Use sed to replace the placeholder in the nginx template file
+sed "s|\${REWRITE_LOG}|$REWRITE_LOG|g" /usr/local/openresty/nginx/conf/nginx.conf.template > /usr/local/openresty/nginx/conf/nginx.conf
+
+# Start nginx
+/usr/local/openresty/bin/openresty -g 'daemon off;'
-- 
GitLab