Switch to a more recent version of syslog-ng

Existing alpine image used to build the syslog-ng container
is very old and does not support arm64 arch.

Move to alpine 3.13.4 which is built for multi-arch. This
upgrades the syslog-ng version from 3.7 to 3.30, and with it
come changes on how to configure it. The .std and .out files
are redundant, instead use a single syslog-ng.conf to
provide all custom configuration.

Change-Id: I9aa87cb3a99279b491592f221084aedf903959a4
diff --git a/src/test/docker/docker-syslog-ng-stdout/Dockerfile b/src/test/docker/docker-syslog-ng-stdout/Dockerfile
index 11f3059..52c1e64 100644
--- a/src/test/docker/docker-syslog-ng-stdout/Dockerfile
+++ b/src/test/docker/docker-syslog-ng-stdout/Dockerfile
@@ -1,10 +1,10 @@
-FROM alpine:3.4
+FROM alpine:3.13.4
 MAINTAINER Ryan Schlesinger <ryan@outstand.com>
 
 RUN apk add --no-cache bash syslog-ng
 
 RUN mkdir /sidecar
-COPY config/* /etc/syslog-ng/
+COPY config/syslog-ng.conf /etc/syslog-ng/
 COPY docker-entrypoint.sh /docker-entrypoint.sh
 VOLUME ["/sidecar"]
 CMD ["syslog-ng", "-F"]
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-destination.out b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-destination.out
deleted file mode 100644
index 170f7e4..0000000
--- a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-destination.out
+++ /dev/null
@@ -1 +0,0 @@
-  destination d_stdout { pipe("/dev/stdout"); };
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-log.out b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-log.out
deleted file mode 100644
index 6901c41..0000000
--- a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-log.out
+++ /dev/null
@@ -1 +0,0 @@
-log { source(s_all); destination(d_stdout); };
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-plugins.std b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-plugins.std
deleted file mode 100644
index ef0ce3e..0000000
--- a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-plugins.std
+++ /dev/null
@@ -1 +0,0 @@
-@version: 3.7
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.sidecar b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.sidecar
deleted file mode 100644
index 1181f78..0000000
--- a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.sidecar
+++ /dev/null
@@ -1,5 +0,0 @@
-# sidecar log source for mounting between docker containers
-  network(
-    transport("udp")
-    port("514")
-  );
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.std b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.std
deleted file mode 100644
index 5a50916..0000000
--- a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng-source.std
+++ /dev/null
@@ -1,8 +0,0 @@
-# ---------------------------------------------------------------------------------
-# Default syslog-ng sources; Do not edit this file!
-# append source with line on a file: syslog-ng-source.<package>
-# ---------------------------------------------------------------------------------
-# message generated by Syslog-NG
-  internal();
-# standard Linux log source (this is the default place for the syslog() function to send logs to)
-  unix-dgram("/dev/log");
diff --git a/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng.conf b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng.conf
new file mode 100644
index 0000000..94cdac9
--- /dev/null
+++ b/src/test/docker/docker-syslog-ng-stdout/config/syslog-ng.conf
@@ -0,0 +1,136 @@
+@version:3.30
+@include "scl.conf"
+
+# syslog-ng configuration file.
+#
+# See syslog-ng(8) and syslog-ng.conf(5) for more information.
+#
+# Note: It also sources additional configuration files (*.conf)
+#	   located in /etc/syslog-ng/conf.d/.
+
+#
+# Options
+#
+options {
+	# Create destination directories if missing.
+	create_dirs(yes);
+
+	# The default action of syslog-ng is to log a MARK line to the file every
+	# 20 minutes. That's seems high for most people so turn it down to once an
+	# hour. Set it to zero if you don't want the functionality at all.
+	mark_freq(3600);
+
+	# The default action of syslog-ng is to log a STATS line to the file every
+	# 10 minutes. That's pretty ugly after a while. Change it to every 12 hours
+	# so you get a nice daily update of how many messages syslog-ng missed (0).
+	stats_freq(43200);
+
+	# Time to wait before a died connection is re-established (default is 60).
+	time_reopen(5);
+
+	# Disable DNS usage.
+	# syslog-ng blocks on DNS queries, so enabling DNS may lead to a DoS attack.
+	use_dns(no);
+	dns-cache(no);
+
+	# Default owner, group, and permissions for log files.
+	owner(root);
+	group(adm);
+	perm(0640);
+
+	# Default permissions for created directories.
+	dir_perm(0755);
+};
+
+
+#
+# Templates
+#
+
+template t_file {
+	template("${YEAR}-${MONTH}-${DAY} ${HOUR}:${MIN}:${SEC} ${LEVEL} ${MSGHDR}${MSG}\n");
+};
+
+
+#
+# Sources
+#
+
+#source s_sys {
+	# Standard system log source.
+#	system();
+
+	# Messages generated by syslog-ng.
+#	internal();
+#};
+
+# customisation
+source s_all {
+  internal();
+  unix-dgram("/dev/log");
+  network(
+    transport("udp")
+    port(514)
+  );
+};
+
+
+#
+# Destinations
+#
+
+destination d_auth { file("/var/log/auth.log" template(t_file)); };
+destination d_boot { file("/var/log/boot.log" template(t_file)); };
+destination d_cron { file("/var/log/cron.log" template(t_file)); };
+destination d_kern { file("/var/log/kern.log" template(t_file)); };
+destination d_mail { file("/var/log/mail.log" template(t_file) flush_lines(10)); };
+destination d_mesg { file("/var/log/messages" template(t_file)); };
+
+# Send messages to console of everyone logged in.
+destination d_cons_all { usertty("*"); };
+
+# Send message to the root's console.
+destination d_cons_root { usertty("root"); };
+
+# customisation
+destination d_stdout { pipe("/dev/stdout"); };
+
+
+#
+# Filters
+#
+
+filter f_auth { facility(auth, authpriv); };
+filter f_boot { facility(local7); };
+filter f_cron { facility(cron); };
+filter f_emerg { level(emerg); };
+filter f_kern { facility(kern); };
+filter f_mail { facility(mail); };
+
+filter f_default {
+	level(info..emerg)
+	and not (facility(auth)
+		or facility(authpriv)
+		or facility(cron)
+		or facility(kern)
+		or facility(mail));
+};
+
+
+#
+# Logs
+#
+
+#log { source(s_sys); filter(f_auth); destination(d_auth); };
+#log { source(s_sys); filter(f_boot); destination(d_boot); };
+#log { source(s_sys); filter(f_cron); destination(d_cron); };
+#log { source(s_sys); filter(f_emerg); destination(d_cons_root); };
+#log { source(s_sys); filter(f_kern); destination(d_kern); };
+#log { source(s_sys); filter(f_mail); destination(d_mail); };
+#log { source(s_sys); filter(f_default); destination(d_mesg); };
+
+# customisation
+log { source(s_all); destination(d_stdout); };
+
+# Source additional configuration files (.conf extension only)
+#@include "/etc/syslog-ng/conf.d/*.conf"
\ No newline at end of file
diff --git a/src/test/docker/docker-syslog-ng-stdout/docker-entrypoint.sh b/src/test/docker/docker-syslog-ng-stdout/docker-entrypoint.sh
index be51a09..79e09ec 100755
--- a/src/test/docker/docker-syslog-ng-stdout/docker-entrypoint.sh
+++ b/src/test/docker/docker-syslog-ng-stdout/docker-entrypoint.sh
@@ -1,49 +1,4 @@
 #!/bin/bash
 
-# The following two methods are ripped from alpine's syslog-ng package.
-# This allows us (and a user) to customize the config with snippets.
-grep_syslog_conf_entries() {
-  local section="$1" FN filelist
-  grep -v '^#' /etc/syslog-ng/syslog-ng-${section}.std
-  filelist=$(find /etc/syslog-ng/ -maxdepth 1 -type f -name "syslog-ng-${section}.*" | grep -Ev ".backup|.std|~")
-  if [ $? -eq 0 ]
-  then
-    for FN in ${filelist}
-    do
-      grep -v '^#' $FN
-    done
-  fi
-}
-
-update() {
-  local fname='/etc/syslog-ng/syslog-ng.conf'
-  local f_tmp="/etc/syslog-ng/syslog-ng.conf.$$"
-  for ng_std in options source destination filter log
-  do
-    [ -f /etc/syslog-ng/syslog-ng-${ng_std}.std ] || exit 1
-  done
-  {
-    # create options entries
-    grep_syslog_conf_entries plugins
-    echo "options {"
-    grep_syslog_conf_entries options
-    echo "};"
-    # create source entries
-    echo "source s_all {"
-    grep_syslog_conf_entries source
-    echo "};"
-    # create destination entries
-    grep_syslog_conf_entries destination
-    # create filter entries
-    grep_syslog_conf_entries filter
-    # create log entries
-    grep_syslog_conf_entries log
-  } > $f_tmp
-  cp -p $f_tmp $fname
-  rm -f $f_tmp
-}
-
-update
-
 echo Starting "$@"
 exec "$@"