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:
parent
546e849593
commit
1cfdcb5f18
@ -4,12 +4,11 @@ MAINTAINER Juan Luis Baptiste juan.baptiste@gmail.com
|
|||||||
|
|
||||||
RUN apk update && \
|
RUN apk update && \
|
||||||
apk add bash gawk cyrus-sasl cyrus-sasl-login cyrus-sasl-crammd5 mailx \
|
apk add bash gawk cyrus-sasl cyrus-sasl-login cyrus-sasl-crammd5 mailx \
|
||||||
perl supervisor postfix rsyslog && \
|
postfix && \
|
||||||
rm -rf /var/cache/apk/* && \
|
rm -rf /var/cache/apk/* && \
|
||||||
mkdir -p /var/log/supervisor/ /var/run/supervisor/ && \
|
mkdir -p /var/log/supervisor/ /var/run/supervisor/ && \
|
||||||
sed -i -e 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
|
sed -i -e 's/inet_interfaces = localhost/inet_interfaces = all/g' /etc/postfix/main.cf
|
||||||
|
|
||||||
COPY etc/ /etc/
|
|
||||||
COPY run.sh /
|
COPY run.sh /
|
||||||
RUN chmod +x /run.sh
|
RUN chmod +x /run.sh
|
||||||
RUN newaliases
|
RUN newaliases
|
||||||
|
@ -13,9 +13,6 @@ This image is available for the following architectures:
|
|||||||
* armv7
|
* armv7
|
||||||
* arm64
|
* 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)._
|
_If you want to follow the development of this project check out [my blog](https://www.juanbaptiste.tech/category/postfx)._
|
||||||
|
|
||||||
### Available image tags
|
### 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}'`
|
DOMAIN=`echo ${SERVER_HOSTNAME} | awk 'BEGIN{FS=OFS="."}{print $(NF-1),$NF}'`
|
||||||
|
|
||||||
# Set needed config options
|
# Set needed config options
|
||||||
|
add_config_value "maillog_file" "/dev/stdout"
|
||||||
add_config_value "myhostname" ${SERVER_HOSTNAME}
|
add_config_value "myhostname" ${SERVER_HOSTNAME}
|
||||||
add_config_value "mydomain" ${DOMAIN}
|
add_config_value "mydomain" ${DOMAIN}
|
||||||
add_config_value "mydestination" 'localhost'
|
add_config_value "mydestination" 'localhost'
|
||||||
@ -90,4 +91,4 @@ fi
|
|||||||
# starting services
|
# starting services
|
||||||
rm -f /var/spool/postfix/pid/master.pid
|
rm -f /var/spool/postfix/pid/master.pid
|
||||||
|
|
||||||
exec supervisord -c /etc/supervisord.conf
|
exec /usr/sbin/postfix -c /etc/postfix start-fg
|
||||||
|
Loading…
Reference in New Issue
Block a user