Skip to content
Snippets Groups Projects
Commit ab5edf10 authored by David Schmitz's avatar David Schmitz
Browse files

reaorganization of Dockerfiles: move into sub dir Dockerfiles.d except default...

reaorganization of Dockerfiles: move into sub dir Dockerfiles.d except default Dockerfile; add supervisord Dockerfiles for centos and debian ; 1step or 2step
parent c88ca797
No related branches found
No related tags found
No related merge requests found
Showing
with 552 additions and 51 deletions
FROM centos:7
ENV LC_ALL en_US.utf8
......
router-container/Dockerfile
\ No newline at end of file
#use: docker build -f Dockerfile.centos.base -t fodpy3_base .
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.centos.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.centos.step2 -t fodpy3 .
FROM centos:7
......
#use: cd /root/FOD && docker build -f Dockerfile.centos.base -t fodpy3_base . ; cd /root/FOD && docker build -f Dockerfile.centos.step2 -t fodpy3 .
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.centos.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.centos.step2 -t fodpy3 .
#FROM centos:7
FROM fodpy3_base
......
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.centos.supervisord.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.centos.supervisord.step2 -t fodpy3 .
##
#docker_label: fodpy3_base
#dockerbuild_sticky: 0
FROM centos:7
##
ENV LC_ALL en_US.utf8
RUN yum -y install procps
RUN mkdir -p /var/log/fod /srv
#COPY . /srv/flowspy
COPY install-centos.sh requirements.txt /srv/flowspy/
RUN (cd /srv/flowspy; ./install-centos.sh --basesw;)
# echo "To set environment to English, run: export LC_ALL=en_US"
# echo "To activate virualenv: source /srv/venv/bin/activate"
# echo "To create a user run: cd /srv/flowspy; ./manage.py createsuperuser"
# echo "To start flowspy server: cd /srv/flowspy; ./manage.py runserver 0.0.0.0:8000"
# echo "To start celeryd: cd /srv/flowspy; ./manage.py celeryd"
RUN yum install -y supervisor
RUN yum install -y net-utils lsof w3m links lynx curl wget
#EXPOSE 8000
#CMD [ "/srv/flowspy/runfod.sh" ]
CMD [ "sleep" "10000000" ]
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.centos.supervisord.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.centos.supervisord.step2 -t fodpy3 .
##
#docker_label: fodpy3
##
#FROM centos:7
FROM fodpy3_base
#dockerbase_dockerfile: Dockerfile.centos.supervisord.base
##
ENV LC_ALL en_US.utf8
#RUN yum -y install procps
RUN mkdir -p /var/log/fod /srv
COPY . /srv/flowspy
RUN useradd -m fod
#RUN chown -R fod: /srv/flowspy
RUN (cd /srv/flowspy; ./install-centos.sh --fodproper;)
RUN chown -R fod: /srv/flowspy
# echo "To set environment to English, run: export LC_ALL=en_US"
# echo "To activate virualenv: source /srv/venv/bin/activate"
# echo "To create a user run: cd /srv/flowspy; ./manage.py createsuperuser"
# echo "To start flowspy server: cd /srv/flowspy; ./manage.py runserver 0.0.0.0:8000"
# echo "To start celeryd: cd /srv/flowspy; ./manage.py celeryd"
EXPOSE 8000
RUN yum -y install supervisor
COPY supervisord.conf /etc/supervisord.conf
#CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"
CMD [ "/srv/flowspy/runfod-supervisord.sh" ]
File moved
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.debian.supervisor.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.debian.supervisor.step2 -t fodpy3 .
#docker_label: fodpy3_base-debian
FROM debian:buster
ENV LC_ALL en_US.utf8
......@@ -17,6 +22,10 @@ RUN apt-get -qqy install patch
#RUN (cd /srv/flowspy; ./install-debian.sh;)
RUN (cd /srv/flowspy; ./install-debian.sh --basesw;)
RUN apt-get -qqy install supervisor
#RUN apt-get -qqy install net-utils lsof w3m links lynx curl wget
RUN apt-get -qqy install lsof w3m links lynx curl wget
#EXPOSE 8000
#CMD [ "/srv/flowspy/runfod.sh" ]
......
#use (from main dir): docker build -f ./Dockerfiles.d/Dockerfile.debian.supervisor.base -t fodpy3_base . && docker build -f ./Dockerfiles.d/Dockerfile.debian.supervisor.step2 -t fodpy3 .
#FROM debian:buster
FROM fodpy3-debian_base
#dockerbase_dockerfile: Dockerfile.debian.supervisord.base
ENV LC_ALL en_US.utf8
......@@ -22,5 +26,9 @@ EXPOSE 8000
WORKDIR /srv/flowspy
CMD [ "/srv/flowspy/runfod.sh" ]
RUN apt-get -qqy install supervisor
COPY supervisord.conf /etc/supervisord.conf
#CMD ["/usr/bin/supervisord", "-c", "/etc/supervisord.conf"
CMD [ "/srv/flowspy/runfod-supervisord.sh" ]
../router-container/Dockerfile
\ No newline at end of file
......@@ -4,7 +4,7 @@
# instructions:
# 1. build container, e.g., by:
#> docker build -f Dockerfile.vnet_router0a -t vnet0a .
#> docker build -f ./Dockerfiles.d/Dockerfile.vnet_router0a -t vnet0a . # run from main dir
#> docker run -t -i vnet0a
......
......@@ -4,7 +4,7 @@
# instructions:
# 1. build container, e.g., by:
#> docker build -f Dockerfile.vnet_router1 -t vnet .
#> docker build -f ./Dockerfiles.d/Dockerfile.vnet_router1 -t vnet . # run from main dir
# 2. before running container make sure openvswitch module is loaded in kernel (modprobe openvswitch) and run container with --privileged (needed for openvswitch inside container)
#> modprobe openvswitch
......
......@@ -4,7 +4,7 @@
# instructions:
# 1. build container, e.g., by:
#> docker build -f Dockerfile.vnet_router2 -t vnet2 .
#> docker build -f ./Dockerfiles.d/Dockerfile.vnet_router2 -t vnet2 . # run from main dir
# 2. before running container make sure openvswitch module is loaded in kernel (modprobe openvswitch) and run container with --privileged (needed for openvswitch inside container)
#> modprobe openvswitch
......
......@@ -106,6 +106,8 @@ without an actual effect on any network, but FoD functionality of controlling ru
similar to router-container/Dockerfile but will use netconfd (DEBIAN package) instead of CESNET's netopeer NETCONF server
./Dockerfiles.d/Dockerfile.vnet_router0a :
### NETCONF test server docker container extended to virtual DDoS test network
Based on an instance of the NETCONF test server docker container
......@@ -117,8 +119,8 @@ SNMPd and a Perl SNMPd statistic collector script
Yields a more complete simulation of a router for FoD.
Dockerfile.vnet_router1 :
Dockerfile.vnet_router2 : similar to Dockerfile.vnet_router1, but will use netconfd (DEBIAN package) instead of CESNET's netopeer NETCONF server
./Dockerfiles.d/Dockerfile.vnet_router1 :
./Dockerfiles.d/Dockerfile.vnet_router2 : similar to Dockerfile.vnet_router1, but will use netconfd (DEBIAN package) instead of CESNET's netopeer NETCONF server
(instructions how to build and run inside the Dockerfiles)
......
......@@ -4,22 +4,71 @@
# with Celery, Redis, and sqlite.
#
fod_dir="/srv/flowspy"
venv_dir="/srv/venv"
install_basesw=1
install_fodproper=1
if [ $# -ge 1 -a "$1" = "--both" ]; then
shift 1
install_basesw=1
install_fodproper=1
elif [ $# -ge 1 -a "$1" = "--basesw" ]; then
shift 1
install_basesw=1
install_fodproper=0
elif [ $# -ge 1 -a "$1" = "--fodproper" ]; then
shift 1
install_basesw=0
install_fodproper=1
#
while [ $# -gt 0 ]; do
if [ $# -ge 1 -a "$1" = "--here" ]; then
shift 1
fod_dir="$PWD"
venv_dir="$PWD/venv"
elif [ $# -ge 1 -a "$1" = "--base_dir" ]; then
shift 1
base_dir="$1"
shift 1
fod_dir="$base_dir/flowspy"
venv_dir="$base_dir/venv"
elif [ $# -ge 1 -a "$1" = "--fod_dir" ]; then
shift 1
fod_dir="$1"
shift 1
elif [ $# -ge 1 -a "$1" = "--venv_dir" ]; then
shift 1
venv_dir="$1"
shift 1
elif [ $# -ge 1 -a "$1" = "--both" ]; then
shift 1
install_basesw=1
install_fodproper=1
elif [ $# -ge 1 -a "$1" = "--basesw" ]; then
shift 1
install_basesw=1
install_fodproper=0
elif [ $# -ge 1 -a "$1" = "--fodproper" ]; then
shift 1
install_basesw=0
install_fodproper=1
else
break
fi
done
##
venv_dir_base="$(dirname "$venv_dir")"
static_dir="$fod_dir/static"
inst_dir="$(dirname "$0")"
mkdir -p "$fod_dir" || exit
if [ "$(stat -Lc "%i" "$inst_dir/" "$fod_dir/" | sort -n -k 1 -u | wc -l)" = "1" ]; then
inst_dir_is_fod_dir=1
else
inst_dir_is_fod_dir=0
fi
echo "$0: inst_dir=$inst_dir fod_dir=$fod_dir => inst_dir_is_fod_dir=$inst_dir_is_fod_dir venv_dir=$venv_dir static_dir=$static_dir" 1>&2
#exit
##
if [ "$install_basesw" = 1 ]; then
......@@ -42,54 +91,93 @@ if [ "$install_fodproper" = 0 ]; then
echo "Setup partial python environment for FoD"
mkdir -p /srv
pyvenv /srv/venv
source /srv/venv/bin/activate
#mkdir -p /srv
mkdir -p "$venv_dir_base"
if [ -x pyvenv ]; then
#pyvenv /srv/venv
pyvenv "$venv_dir"
else
#virtualenv /srv/venv
virtualenv "$venv_dir"
fi
ln -sf "$venv_dir" "$fod_dir/venv"
#source /srv/venv/bin/activate
source "$venv_dir/bin/activate"
pip install wheel
pip install -r requirements.txt
else
echo "Setup python environment for FoD"
mkdir -p /var/log/fod /srv
pyvenv /srv/venv
#mkdir -p /var/log/fod /srv
mkdir -p /var/log/fod "$venv_dir_base"
if [ -x pyvenv ]; then
#pyvenv /srv/venv
pyvenv "$venv_dir"
else
#virtualenv /srv/venv
virtualenv "$venv_dir"
fi
ln -sf "$venv_dir" "$fod_dir/venv"
(
set +e
source /srv/venv/bin/activate
mkdir -p /srv/flowspy/
# Select source dir and copy FoD into /srv/flowspy/
if [ "`basename "$0"`" = install-centos.sh ]; then
# this script is in the source directory
cp -f -r "`dirname $0`"/* /srv/flowspy/
elif [ -e /vagrant ]; then
# vagrant's copy in /vagrant/
cp -f -r /vagrant/* /srv/flowspy/
elif [ -e ./install-centos.sh ]; then
# current directory is with the sourcecode
cp -f -r ./* /srv/flowspy/
else
echo "Could not find FoD src directory tried `dirname $0`, /vagrant/, ./"
exit 1
fi
#source /srv/venv/bin/activate
source "$venv_dir/bin/activate"
#mkdir -p /srv/flowspy/
mkdir -p "$fod_dir"
if [ "$inst_dir_is_fod_dir" = 0 ]; then
# Select source dir and copy FoD into /srv/flowspy/
if [ "`basename "$0"`" = install-debian.sh ]; then
# this script is in the source directory
#cp -f -r "`dirname $0`"/* /srv/flowspy/
cp -f -r "$inst_dir"/* "$fod_dir"
elif [ -e /vagrant ]; then
# vagrant's copy in /vagrant/
#cp -f -r /vagrant/* /srv/flowspy/
cp -f -r /vagrant/* "$fod_dir"
elif [ -e ./install-centos.sh ]; then
# current directory is with the sourcecode
#cp -f -r ./* /srv/flowspy/
cp -f -r ./* "$fod_dir"
else
echo "Could not find FoD src directory tried `dirname $0`, /vagrant/, ./"
exit 1
fi
fi
find "$fod_dir/" -not -user fod -exec chown -v fod: {} \;
set -e
cd /srv/flowspy/
#cd /srv/flowspy/
cd "$fod_dir"
(
cd flowspy
cp -f settings.py.dist settings.py
patch settings.py < settings.py.patch
sed -i "s#/srv/flowspy#$fod_dir#" "settings.py"
)
pip install -r requirements.txt
touch flowspy/settings_local.py
#./manage.py syncdb --noinput
mkdir -p /srv/flowspy/static/
#mkdir -p /srv/flowspy/static/
mkdir -p "$static_dir"
./manage.py collectstatic --noinput
./manage.py migrate
./manage.py loaddata initial_data
mkdir -p "$fod_dir/log" "$fod_dir/logs"
chown -R fod: "$fod_dir/log" "$fod_dir/logs"
sed -i "s#/srv/flowspy#$fod_dir#" "$fod_dir/supervisord.conf"
)
set +e
......
#!/bin/bash
export LC_ALL="C" # this will unfortunatelly break ./manage.py createsuperuser as locale string is literally used to derive encoding
##
#fod_dir="/srv/flowspy"
#venv_dir="/srv/venv"
fod_dir="$(dirname "$0")"
venv_dir="$fod_dir/venv"
echo "$0: ini fod_dir=$fod_dir venv_dir=$venv_dir" 1>&2
#
while [ $# -gt 0 ]; do
if [ $# -ge 1 -a "$1" = "--here" ]; then
shift 1
fod_dir="$PWD"
venv_dir="$PWD/venv"
elif [ $# -ge 1 -a "$1" = "--base_dir" ]; then
shift 1
base_dir="$1"
shift 1
fod_dir="$base_dir/flowspy"
venv_dir="$base_dir/venv"
elif [ $# -ge 1 -a "$1" = "--fod_dir" ]; then
shift 1
fod_dir="$1"
shift 1
elif [ $# -ge 1 -a "$1" = "--venv_dir" ]; then
shift 1
venv_dir="$1"
shift 1
else
break
fi
done
##
#. /srv/venv/bin/activate
. "$venv_dir/bin/activate"
#if [ ! -e /srv/flowspy/pythonenv ]; then
if [ ! -e "$fod_dir/pythonenv" ]; then
#cat > /srv/flowspy/pythonenv <<EOF
cat > "$fod_dir/pythonenv" <<EOF
#!/bin/bash
. "$venv_dir/bin/activate"
exec "\$@"
EOF
#chmod +x /srv/flowspy/pythonenv
chmod +x "$fod_dir/pythonenv"
fi
##
cd "$(dirname "$0")"
#if [ ! -x ./fodcli_db_is_mysql ] || ./fodcli_db_is_mysql; then
# echo "Starting DB services FoD might be depending on (depending on its config): mysql" 1>&2
# systemctl start mysql.service
#fi
# hook to initiallize (without any user interaction admin user and its peer data)
[ -x "$fod_dir/fodcli_insert_basic_data.sh" ] && "$fod_dir/fodcli_insert_basic_data.sh"
#echo "starting redis" 1>&2
#/usr/bin/redis-server &
#echo "Starting FoD celeryd in background" 1>&2
#celery worker -A flowspy -B --concurrency=2 --detach -l debug -f celery.log
#echo "Starting FoD gunicorn in foreground" 1>&2
#exec ./manage.py runserver 0.0.0.0:8000
#exec ./manage.py runserver 0.0.0.0:8000 --nothreading
#exec gunicorn -w 1 --limit-request-fields 10000 --worker-class gevent --timeout 30
#exec gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1 --limit-request-fields 10000 --timeout 30
#exec gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1
#exec gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1 -k gevent --limit-request-fields 10000 --timeout 30 #--preload
#exec gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1 -k gevent --limit-request-fields 10000 --timeout 30
##
if ! which supervisord; then
echo "supervisor not installed, trying to do this" 1>&2
if [ -f /etc/debian_version ]; then
apt-get install -qqy supervisor
else
yum install -y supervisor
fi
fi
#useradd -m fod
(
set -x
#source /srv/venv/bin/activate
source "$venv_dir/bin/activate"
#cd /srv/flowspy && ./manage.py collectstatic --noinput
cd "$fod_dir" && ./manage.py collectstatic --noinput
)
# needed for redis
sysctl vm.overcommit_memory=1
# supervisord.conf
cp -f supervisord.conf /etc
mkdir -p /var/run/fod /var/log/fod
chown -R fod /var/run/fod /var/log/fod
mkdir -p log/fod
mkdir -p logs
#chown fod /srv/flowspy /srv/flowspy/log /srv/flowspy/logs /srv/flowspy/log/* /srv/flowspy/logs/* /srv/flowspy/debug.log /srv/flowspy/example-data
chown fod "$fod_dir" "$fod_dir/log" "$fod_dir/logs" "$fod_dir/log/"* "$fod_dir/logs/"* "$fod_dir/debug.log" "$fod_dir/example-data"
##
mkdir -p /var/run/supervisor
exec /usr/bin/supervisord -n -c /etc/supervisord.conf
#!/bin/bash
export LC_ALL="C" # this will unfortunatelly break ./manage.py createsuperuser as locale string is literally used to derive encoding
. /srv/venv/bin/activate
if [ ! -e /srv/flowspy/pythonenv ]; then
cat > /srv/flowspy/pythonenv <<EOF
##
#fod_dir="/srv/flowspy"
#venv_dir="/srv/venv"
fod_dir="$(dirname "$0")"
venv_dir="$fod_dir/venv"
echo "$0: ini fod_dir=$fod_dir venv_dir=$venv_dir" 1>&2
#
while [ $# -gt 0 ]; do
if [ $# -ge 1 -a "$1" = "--here" ]; then
shift 1
fod_dir="$PWD"
venv_dir="$PWD/venv"
elif [ $# -ge 1 -a "$1" = "--base_dir" ]; then
shift 1
base_dir="$1"
shift 1
fod_dir="$base_dir/flowspy"
venv_dir="$base_dir/venv"
elif [ $# -ge 1 -a "$1" = "--fod_dir" ]; then
shift 1
fod_dir="$1"
shift 1
elif [ $# -ge 1 -a "$1" = "--venv_dir" ]; then
shift 1
venv_dir="$1"
shift 1
else
break
fi
done
##
#. /srv/venv/bin/activate
. "$venv_dir/bin/activate"
#if [ ! -e /srv/flowspy/pythonenv ]; then
if [ ! -e "$fod_dir/pythonenv" ]; then
#cat > /srv/flowspy/pythonenv <<EOF
cat > "$fod_dir/pythonenv" <<EOF
#!/bin/bash
. /srv/venv/bin/activate
. "$venv_dir/bin/activate"
exec "\$@"
EOF
chmod +x /srv/flowspy/pythonenv
#chmod +x /srv/flowspy/pythonenv
chmod +x "$fod_dir/pythonenv"
fi
##
......@@ -22,7 +67,7 @@ cd "$(dirname "$0")"
#fi
# hook to initiallize (without any user interaction admin user and its peer data)
[ -x ./fodcli_insert_basic_data.sh ] && ./fodcli_insert_basic_data.sh
[ -x "$fod_dir/fodcli_insert_basic_data.sh" ] && "$fod_dir/fodcli_insert_basic_data.sh"
mkdir -p /var/run/fod
......
; 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=false ; (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=chrism ; (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:celeryd]
#command=celery worker -A flowspy -B --concurrency=2 -l debug -f celery.log
#command=celery worker -A flowspy -B --concurrency=2 -l debug -f log/celery.log
command=celery worker -A flowspy -B --concurrency=2 -l debug -f logs/celery.log
directory=/srv/flowspy
user=fod
[program:gunicorn]
command=gunicorn -b 0.0.0.0:8000 flowspy.wsgi -w 1 -k gevent --limit-request-fields 10000 --timeout 30
directory=/srv/flowspy
user=fod
[program:redis]
command=/usr/bin/redis-server ; 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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment