feat: Removed supervisor and rsyslog
As mentioned in discussion #54, since version 3.3.0, postfix can run in foreground mode, and since 3.4.0 it can log directly to stdout.
This commit is contained in:
		
				
					committed by
					
						
						Juan Luis Baptiste
					
				
			
			
				
	
			
			
			
						parent
						
							546e849593
						
					
				
				
					commit
					1cfdcb5f18
				
			@@ -4,12 +4,11 @@ MAINTAINER Juan Luis Baptiste juan.baptiste@gmail.com
 | 
			
		||||
 | 
			
		||||
RUN apk update && \
 | 
			
		||||
    apk add bash gawk cyrus-sasl cyrus-sasl-login cyrus-sasl-crammd5 mailx \
 | 
			
		||||
    perl supervisor postfix rsyslog && \
 | 
			
		||||
    postfix && \
 | 
			
		||||
    rm -rf /var/cache/apk/* && \
 | 
			
		||||
    mkdir -p /var/log/supervisor/ /var/run/supervisor/ && \
 | 
			
		||||
    sed -i -e 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
 | 
			
		||||
 | 
			
		||||
COPY etc/ /etc/
 | 
			
		||||
COPY run.sh /
 | 
			
		||||
RUN chmod +x /run.sh
 | 
			
		||||
RUN newaliases
 | 
			
		||||
 
 | 
			
		||||
@@ -13,9 +13,6 @@ This image is available for the following architectures:
 | 
			
		||||
* armv7
 | 
			
		||||
* arm64
 | 
			
		||||
 | 
			
		||||
It also includes rsyslog to enable logging to stdout.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
_If you want to follow the development of this project check out [my blog](https://www.juanbaptiste.tech/category/postfx)._
 | 
			
		||||
 | 
			
		||||
### Available image tags
 | 
			
		||||
 
 | 
			
		||||
@@ -1,90 +0,0 @@
 | 
			
		||||
# rsyslog configuration file
 | 
			
		||||
 | 
			
		||||
# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
 | 
			
		||||
# If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html
 | 
			
		||||
 | 
			
		||||
#### MODULES ####
 | 
			
		||||
 | 
			
		||||
# The imjournal module bellow is now used as a message source instead of imuxsock.
 | 
			
		||||
$ModLoad imuxsock # provides support for local system logging (e.g. via logger command)
 | 
			
		||||
#$ModLoad imklog # reads kernel messages (the same are read from journald)
 | 
			
		||||
#$ModLoad immark  # provides --MARK-- message capability
 | 
			
		||||
 | 
			
		||||
# Provides UDP syslog reception
 | 
			
		||||
#$ModLoad imudp
 | 
			
		||||
#$UDPServerRun 514
 | 
			
		||||
 | 
			
		||||
# Provides TCP syslog reception
 | 
			
		||||
#$ModLoad imtcp
 | 
			
		||||
#$InputTCPServerRun 514
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### GLOBAL DIRECTIVES ####
 | 
			
		||||
 | 
			
		||||
# Where to place auxiliary files
 | 
			
		||||
$WorkDirectory /var/lib/rsyslog
 | 
			
		||||
 | 
			
		||||
# Use default timestamp format
 | 
			
		||||
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
 | 
			
		||||
 | 
			
		||||
# File syncing capability is disabled by default. This feature is usually not required,
 | 
			
		||||
# not useful and an extreme performance hit
 | 
			
		||||
#$ActionFileEnableSync on
 | 
			
		||||
 | 
			
		||||
# Include all config files in /etc/rsyslog.d/
 | 
			
		||||
$IncludeConfig /etc/rsyslog.d/*.conf
 | 
			
		||||
 | 
			
		||||
# Turn off message reception via local log socket;
 | 
			
		||||
# local messages are retrieved through imjournal now.
 | 
			
		||||
$OmitLocalLogging off
 | 
			
		||||
 | 
			
		||||
# File to store the position in the journal
 | 
			
		||||
#$IMJournalStateFile imjournal.state
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#### RULES ####
 | 
			
		||||
 | 
			
		||||
# Log all kernel messages to the console.
 | 
			
		||||
# Logging much else clutters up the screen.
 | 
			
		||||
#kern.*                                                 /dev/console
 | 
			
		||||
 | 
			
		||||
# Log anything (except mail) of level info or higher.
 | 
			
		||||
# Don't log private authentication messages!
 | 
			
		||||
*.info;mail.none;authpriv.none;cron.none                /var/log/messages
 | 
			
		||||
 | 
			
		||||
# The authpriv file has restricted access.
 | 
			
		||||
authpriv.*                                              /var/log/secure
 | 
			
		||||
 | 
			
		||||
# Log all the mail messages in one place.
 | 
			
		||||
mail.*                                                  -/var/log/maillog
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# Log cron stuff
 | 
			
		||||
cron.*                                                  /var/log/cron
 | 
			
		||||
 | 
			
		||||
# Everybody gets emergency messages
 | 
			
		||||
*.emerg                                                 :omusrmsg:*
 | 
			
		||||
 | 
			
		||||
# Save news errors of level crit and higher in a special file.
 | 
			
		||||
uucp,news.crit                                          /var/log/spooler
 | 
			
		||||
 | 
			
		||||
# Save boot messages also to boot.log
 | 
			
		||||
local7.*                                                /var/log/boot.log
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# ### begin forwarding rule ###
 | 
			
		||||
# The statement between the begin ... end define a SINGLE forwarding
 | 
			
		||||
# rule. They belong together, do NOT split them. If you create multiple
 | 
			
		||||
# forwarding rules, duplicate the whole block!
 | 
			
		||||
# Remote Logging (we use TCP for reliable delivery)
 | 
			
		||||
#
 | 
			
		||||
# An on-disk queue is created for this action. If the remote host is
 | 
			
		||||
# down, messages are spooled to disk and sent when it is up again.
 | 
			
		||||
#$ActionQueueFileName fwdRule1 # unique name prefix for spool files
 | 
			
		||||
#$ActionQueueMaxDiskSpace 1g   # 1gb space limit (use as much as possible)
 | 
			
		||||
#$ActionQueueSaveOnShutdown on # save messages to disk on shutdown
 | 
			
		||||
#$ActionQueueType LinkedList   # run asynchronously
 | 
			
		||||
#$ActionResumeRetryCount -1    # infinite retries if host is down
 | 
			
		||||
# remote host is: name/ip:port, e.g. 192.168.0.1:514, port optional
 | 
			
		||||
#*.* @@remote-host:514
 | 
			
		||||
# ### end of the forwarding rule ###
 | 
			
		||||
@@ -1 +0,0 @@
 | 
			
		||||
$SystemLogSocketName /dev/log
 | 
			
		||||
@@ -1,129 +0,0 @@
 | 
			
		||||
; Sample supervisor config file.
 | 
			
		||||
 | 
			
		||||
[unix_http_server]
 | 
			
		||||
file=/var/run/supervisor/supervisor.sock   ; (the path to the socket file)
 | 
			
		||||
;chmod=0700                 ; sockef file mode (default 0700)
 | 
			
		||||
;chown=nobody:nogroup       ; socket file uid:gid owner
 | 
			
		||||
;username=user              ; (default is no username (open server))
 | 
			
		||||
;password=123               ; (default is no password (open server))
 | 
			
		||||
 | 
			
		||||
;[inet_http_server]         ; inet (TCP) server disabled by default
 | 
			
		||||
;port=127.0.0.1:9001        ; (ip_address:port specifier, *:port for all iface)
 | 
			
		||||
;username=user              ; (default is no username (open server))
 | 
			
		||||
;password=123               ; (default is no password (open server))
 | 
			
		||||
 | 
			
		||||
[supervisord]
 | 
			
		||||
logfile=/var/log/supervisor/supervisord.log  ; (main log file;default $CWD/supervisord.log)
 | 
			
		||||
logfile_maxbytes=50MB       ; (max main logfile bytes b4 rotation;default 50MB)
 | 
			
		||||
logfile_backups=10          ; (num of main logfile rotation backups;default 10)
 | 
			
		||||
loglevel=info               ; (log level;default info; others: debug,warn,trace)
 | 
			
		||||
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
 | 
			
		||||
nodaemon=true              ; (start in foreground if true;default false)
 | 
			
		||||
minfds=1024                 ; (min. avail startup file descriptors;default 1024)
 | 
			
		||||
minprocs=200                ; (min. avail process descriptors;default 200)
 | 
			
		||||
;umask=022                  ; (process file creation umask;default 022)
 | 
			
		||||
user=root                 ; (default is current user, required if root)
 | 
			
		||||
;identifier=supervisor       ; (supervisord identifier, default is 'supervisor')
 | 
			
		||||
;directory=/tmp              ; (default is not to cd during start)
 | 
			
		||||
;nocleanup=true              ; (don't clean up tempfiles at start;default false)
 | 
			
		||||
;childlogdir=/tmp            ; ('AUTO' child log dir, default $TEMP)
 | 
			
		||||
;environment=KEY=value       ; (key value pairs to add to environment)
 | 
			
		||||
;strip_ansi=false            ; (strip ansi escape codes in logs; def. false)
 | 
			
		||||
 | 
			
		||||
; the below section must remain in the config file for RPC
 | 
			
		||||
; (supervisorctl/web interface) to work, additional interfaces may be
 | 
			
		||||
; added by defining them in separate rpcinterface: sections
 | 
			
		||||
[rpcinterface:supervisor]
 | 
			
		||||
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
 | 
			
		||||
 | 
			
		||||
[supervisorctl]
 | 
			
		||||
serverurl=unix:///var/run/supervisor/supervisor.sock ; use a unix:// URL  for a unix socket
 | 
			
		||||
;serverurl=http://127.0.0.1:9001 ; use an http:// url to specify an inet socket
 | 
			
		||||
;username=chris              ; should be same as http_username if set
 | 
			
		||||
;password=123                ; should be same as http_password if set
 | 
			
		||||
;prompt=mysupervisor         ; cmd line prompt (default "supervisor")
 | 
			
		||||
;history_file=~/.sc_history  ; use readline history if available
 | 
			
		||||
 | 
			
		||||
; The below sample program section shows all possible program subsection values,
 | 
			
		||||
; create one or more 'real' program: sections to be able to control them under
 | 
			
		||||
; supervisor.
 | 
			
		||||
 | 
			
		||||
;[program:theprogramname]
 | 
			
		||||
;command=/bin/cat              ; the program (relative uses PATH, can take args)
 | 
			
		||||
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
 | 
			
		||||
;numprocs=1                    ; number of processes copies to start (def 1)
 | 
			
		||||
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
 | 
			
		||||
;umask=022                     ; umask for process (default None)
 | 
			
		||||
;priority=999                  ; the relative start priority (default 999)
 | 
			
		||||
;autostart=true                ; start at supervisord start (default: true)
 | 
			
		||||
;autorestart=true              ; retstart at unexpected quit (default: true)
 | 
			
		||||
;startsecs=10                  ; number of secs prog must stay running (def. 1)
 | 
			
		||||
;startretries=3                ; max # of serial start failures (default 3)
 | 
			
		||||
;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
 | 
			
		||||
;stopsignal=QUIT               ; signal used to kill process (default TERM)
 | 
			
		||||
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
 | 
			
		||||
;user=chrism                   ; setuid to this UNIX account to run the program
 | 
			
		||||
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
 | 
			
		||||
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
 | 
			
		||||
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
 | 
			
		||||
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
 | 
			
		||||
;stdout_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
 | 
			
		||||
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
 | 
			
		||||
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
 | 
			
		||||
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
 | 
			
		||||
;stderr_logfile_backups=10     ; # of stderr logfile backups (default 10)
 | 
			
		||||
;stderr_capture_maxbytes=1MB   ; number of bytes in 'capturemode' (default 0)
 | 
			
		||||
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
 | 
			
		||||
;environment=A=1,B=2           ; process environment additions (def no adds)
 | 
			
		||||
;serverurl=AUTO                ; override serverurl computation (childutils)
 | 
			
		||||
 | 
			
		||||
; The below sample eventlistener section shows all possible
 | 
			
		||||
; eventlistener subsection values, create one or more 'real'
 | 
			
		||||
; eventlistener: sections to be able to handle event notifications
 | 
			
		||||
; sent by supervisor.
 | 
			
		||||
 | 
			
		||||
;[eventlistener:theeventlistenername]
 | 
			
		||||
;command=/bin/eventlistener    ; the program (relative uses PATH, can take args)
 | 
			
		||||
;process_name=%(program_name)s ; process_name expr (default %(program_name)s)
 | 
			
		||||
;numprocs=1                    ; number of processes copies to start (def 1)
 | 
			
		||||
;events=EVENT                  ; event notif. types to subscribe to (req'd)
 | 
			
		||||
;buffer_size=10                ; event buffer queue size (default 10)
 | 
			
		||||
;directory=/tmp                ; directory to cwd to before exec (def no cwd)
 | 
			
		||||
;umask=022                     ; umask for process (default None)
 | 
			
		||||
;priority=-1                   ; the relative start priority (default -1)
 | 
			
		||||
;autostart=true                ; start at supervisord start (default: true)
 | 
			
		||||
;autorestart=unexpected        ; restart at unexpected quit (default: unexpected)
 | 
			
		||||
;startsecs=10                  ; number of secs prog must stay running (def. 1)
 | 
			
		||||
;startretries=3                ; max # of serial start failures (default 3)
 | 
			
		||||
;exitcodes=0,2                 ; 'expected' exit codes for process (default 0,2)
 | 
			
		||||
;stopsignal=QUIT               ; signal used to kill process (default TERM)
 | 
			
		||||
;stopwaitsecs=10               ; max num secs to wait b4 SIGKILL (default 10)
 | 
			
		||||
;user=chrism                   ; setuid to this UNIX account to run the program
 | 
			
		||||
;redirect_stderr=true          ; redirect proc stderr to stdout (default false)
 | 
			
		||||
;stdout_logfile=/a/path        ; stdout log path, NONE for none; default AUTO
 | 
			
		||||
;stdout_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
 | 
			
		||||
;stdout_logfile_backups=10     ; # of stdout logfile backups (default 10)
 | 
			
		||||
;stdout_events_enabled=false   ; emit events on stdout writes (default false)
 | 
			
		||||
;stderr_logfile=/a/path        ; stderr log path, NONE for none; default AUTO
 | 
			
		||||
;stderr_logfile_maxbytes=1MB   ; max # logfile bytes b4 rotation (default 50MB)
 | 
			
		||||
;stderr_logfile_backups        ; # of stderr logfile backups (default 10)
 | 
			
		||||
;stderr_events_enabled=false   ; emit events on stderr writes (default false)
 | 
			
		||||
;environment=A=1,B=2           ; process environment additions
 | 
			
		||||
;serverurl=AUTO                ; override serverurl computation (childutils)
 | 
			
		||||
 | 
			
		||||
; The below sample group section shows all possible group values,
 | 
			
		||||
; create one or more 'real' group: sections to create "heterogeneous"
 | 
			
		||||
; process groups.
 | 
			
		||||
 | 
			
		||||
;[group:thegroupname]
 | 
			
		||||
;programs=progname1,progname2  ; each refers to 'x' in [program:x] definitions
 | 
			
		||||
;priority=999                  ; the relative start priority (default 999)
 | 
			
		||||
 | 
			
		||||
; The [include] section can just contain the "files" setting.  This
 | 
			
		||||
; setting can list multiple files (separated by whitespace or
 | 
			
		||||
; newlines).  It can also contain wildcards.  The filenames are
 | 
			
		||||
; interpreted as relative to this file.  Included files *cannot*
 | 
			
		||||
; include files themselves.
 | 
			
		||||
 | 
			
		||||
[include]
 | 
			
		||||
files = supervisord.d/*.ini
 | 
			
		||||
@@ -1,5 +0,0 @@
 | 
			
		||||
[program:postfix]
 | 
			
		||||
process_name = master
 | 
			
		||||
command=/usr/sbin/postfix -c /etc/postfix start
 | 
			
		||||
startsecs=0
 | 
			
		||||
autorestart=false
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
[program:readlog]
 | 
			
		||||
command=/usr/bin/tail -f /var/log/maillog
 | 
			
		||||
stdout_logfile=/dev/fd/1
 | 
			
		||||
stdout_logfile_maxbytes=0
 | 
			
		||||
@@ -1,2 +0,0 @@
 | 
			
		||||
[program:rsyslog]
 | 
			
		||||
command=/usr/sbin/rsyslogd -n
 | 
			
		||||
							
								
								
									
										3
									
								
								run.sh
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								run.sh
									
									
									
									
									
								
							@@ -26,6 +26,7 @@ SMTP_PORT="${SMTP_PORT:-587}"
 | 
			
		||||
DOMAIN=`echo ${SERVER_HOSTNAME} | awk 'BEGIN{FS=OFS="."}{print $(NF-1),$NF}'`
 | 
			
		||||
 | 
			
		||||
# Set needed config options
 | 
			
		||||
add_config_value "maillog_file" "/dev/stdout"
 | 
			
		||||
add_config_value "myhostname" ${SERVER_HOSTNAME}
 | 
			
		||||
add_config_value "mydomain" ${DOMAIN}
 | 
			
		||||
add_config_value "mydestination" 'localhost'
 | 
			
		||||
@@ -90,4 +91,4 @@ fi
 | 
			
		||||
# starting services
 | 
			
		||||
rm -f /var/spool/postfix/pid/master.pid
 | 
			
		||||
 | 
			
		||||
exec supervisord -c /etc/supervisord.conf
 | 
			
		||||
exec /usr/sbin/postfix -c /etc/postfix start-fg
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user