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
Branches
Tags
No related merge requests found
Showing
with 552 additions and 51 deletions
FROM centos:7 FROM centos:7
ENV LC_ALL en_US.utf8 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 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 centos:7
FROM fodpy3_base 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 FROM debian:buster
ENV LC_ALL en_US.utf8 ENV LC_ALL en_US.utf8
...@@ -17,6 +22,10 @@ RUN apt-get -qqy install patch ...@@ -17,6 +22,10 @@ RUN apt-get -qqy install patch
#RUN (cd /srv/flowspy; ./install-debian.sh;) #RUN (cd /srv/flowspy; ./install-debian.sh;)
RUN (cd /srv/flowspy; ./install-debian.sh --basesw;) 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 #EXPOSE 8000
#CMD [ "/srv/flowspy/runfod.sh" ] #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 debian:buster
FROM fodpy3-debian_base FROM fodpy3-debian_base
#dockerbase_dockerfile: Dockerfile.debian.supervisord.base
ENV LC_ALL en_US.utf8 ENV LC_ALL en_US.utf8
...@@ -22,5 +26,9 @@ EXPOSE 8000 ...@@ -22,5 +26,9 @@ EXPOSE 8000
WORKDIR /srv/flowspy 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 @@ ...@@ -4,7 +4,7 @@
# instructions: # instructions:
# 1. build container, e.g., by: # 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 #> docker run -t -i vnet0a
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# instructions: # instructions:
# 1. build container, e.g., by: # 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) # 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 #> modprobe openvswitch
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
# instructions: # instructions:
# 1. build container, e.g., by: # 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) # 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 #> modprobe openvswitch
......
...@@ -106,6 +106,8 @@ without an actual effect on any network, but FoD functionality of controlling ru ...@@ -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 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 ### NETCONF test server docker container extended to virtual DDoS test network
Based on an instance of the NETCONF test server docker container Based on an instance of the NETCONF test server docker container
...@@ -117,8 +119,8 @@ SNMPd and a Perl SNMPd statistic collector script ...@@ -117,8 +119,8 @@ SNMPd and a Perl SNMPd statistic collector script
Yields a more complete simulation of a router for FoD. Yields a more complete simulation of a router for FoD.
Dockerfile.vnet_router1 : ./Dockerfiles.d/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_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) (instructions how to build and run inside the Dockerfiles)
......
...@@ -4,22 +4,71 @@ ...@@ -4,22 +4,71 @@
# with Celery, Redis, and sqlite. # with Celery, Redis, and sqlite.
# #
fod_dir="/srv/flowspy"
venv_dir="/srv/venv"
install_basesw=1 install_basesw=1
install_fodproper=1 install_fodproper=1
if [ $# -ge 1 -a "$1" = "--both" ]; then
shift 1 #
install_basesw=1
install_fodproper=1 while [ $# -gt 0 ]; do
elif [ $# -ge 1 -a "$1" = "--basesw" ]; then
shift 1 if [ $# -ge 1 -a "$1" = "--here" ]; then
install_basesw=1 shift 1
install_fodproper=0 fod_dir="$PWD"
elif [ $# -ge 1 -a "$1" = "--fodproper" ]; then venv_dir="$PWD/venv"
shift 1 elif [ $# -ge 1 -a "$1" = "--base_dir" ]; then
install_basesw=0 shift 1
install_fodproper=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 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 if [ "$install_basesw" = 1 ]; then
...@@ -42,54 +91,93 @@ if [ "$install_fodproper" = 0 ]; then ...@@ -42,54 +91,93 @@ if [ "$install_fodproper" = 0 ]; then
echo "Setup partial python environment for FoD" echo "Setup partial python environment for FoD"
mkdir -p /srv #mkdir -p /srv
pyvenv /srv/venv mkdir -p "$venv_dir_base"
source /srv/venv/bin/activate 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 wheel
pip install -r requirements.txt pip install -r requirements.txt
else else
echo "Setup python environment for FoD" echo "Setup python environment for FoD"
mkdir -p /var/log/fod /srv #mkdir -p /var/log/fod /srv
pyvenv /srv/venv 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 set +e
source /srv/venv/bin/activate #source /srv/venv/bin/activate
mkdir -p /srv/flowspy/ source "$venv_dir/bin/activate"
#mkdir -p /srv/flowspy/
# Select source dir and copy FoD into /srv/flowspy/ mkdir -p "$fod_dir"
if [ "`basename "$0"`" = install-centos.sh ]; then
# this script is in the source directory if [ "$inst_dir_is_fod_dir" = 0 ]; then
cp -f -r "`dirname $0`"/* /srv/flowspy/
elif [ -e /vagrant ]; then # Select source dir and copy FoD into /srv/flowspy/
# vagrant's copy in /vagrant/ if [ "`basename "$0"`" = install-debian.sh ]; then
cp -f -r /vagrant/* /srv/flowspy/ # this script is in the source directory
elif [ -e ./install-centos.sh ]; then #cp -f -r "`dirname $0`"/* /srv/flowspy/
# current directory is with the sourcecode cp -f -r "$inst_dir"/* "$fod_dir"
cp -f -r ./* /srv/flowspy/ elif [ -e /vagrant ]; then
else # vagrant's copy in /vagrant/
echo "Could not find FoD src directory tried `dirname $0`, /vagrant/, ./" #cp -f -r /vagrant/* /srv/flowspy/
exit 1 cp -f -r /vagrant/* "$fod_dir"
fi 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 set -e
cd /srv/flowspy/ #cd /srv/flowspy/
cd "$fod_dir"
( (
cd flowspy cd flowspy
cp -f settings.py.dist settings.py cp -f settings.py.dist settings.py
patch settings.py < settings.py.patch patch settings.py < settings.py.patch
sed -i "s#/srv/flowspy#$fod_dir#" "settings.py"
) )
pip install -r requirements.txt pip install -r requirements.txt
touch flowspy/settings_local.py touch flowspy/settings_local.py
#./manage.py syncdb --noinput #./manage.py syncdb --noinput
mkdir -p /srv/flowspy/static/ #mkdir -p /srv/flowspy/static/
mkdir -p "$static_dir"
./manage.py collectstatic --noinput ./manage.py collectstatic --noinput
./manage.py migrate ./manage.py migrate
./manage.py loaddata initial_data ./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 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 #!/bin/bash
export LC_ALL="C" # this will unfortunatelly break ./manage.py createsuperuser as locale string is literally used to derive encoding 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 #!/bin/bash
. /srv/venv/bin/activate . "$venv_dir/bin/activate"
exec "\$@" exec "\$@"
EOF EOF
chmod +x /srv/flowspy/pythonenv #chmod +x /srv/flowspy/pythonenv
chmod +x "$fod_dir/pythonenv"
fi fi
## ##
...@@ -22,7 +67,7 @@ cd "$(dirname "$0")" ...@@ -22,7 +67,7 @@ cd "$(dirname "$0")"
#fi #fi
# hook to initiallize (without any user interaction admin user and its peer data) # 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 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