Skip to content

Commit

Permalink
Fix initialization of dockerized services (closes #182)
Browse files Browse the repository at this point in the history
  • Loading branch information
oguzhanunlu committed Jun 3, 2019
1 parent e9118f1 commit f380192
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 83 deletions.
111 changes: 34 additions & 77 deletions provisioning/resources/init/snowplow_mini
Original file line number Diff line number Diff line change
@@ -1,96 +1,53 @@
#!/bin/sh

### BEGIN INIT INFO
# Provides:
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
# Required-Start: $docker
# Required-Stop: $docker
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Snowplow Mini Services
### END INIT INFO

cmd="docker-compose -f /home/ubuntu/snowplow/docker-compose.yml up -d && sleep 20"
user="ubuntu"
set -e

YAMLFILE=/home/ubuntu/snowplow/docker-compose.yml
OPTS="-f $YAMLFILE"
UPOPTS="-d --no-recreate"

up_cmd="cd /home/ubuntu/snowplow && sudo docker-compose up $UPOPTS"
stop_cmd="cd /home/ubuntu/snowplow && sudo docker-compose stop"
down_cmd="cd /home/ubuntu/snowplow && sudo docker-compose down"

name="snowplow_mini"
pid_file="/var/run/$name.pid"
stdout_log="/var/log/$name.log"
stderr_log="/var/log/$name.err"

get_pid() {
cat "$pid_file"
}

is_running() {
[ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
}

case "$1" in
start)
if is_running; then
echo "Already started"
else
echo "Starting $name"
if [ -z "$user" ]; then
sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
else
sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
fi
echo $! > "$pid_file"
if ! is_running; then
echo "Unable to start, see $stdout_log and $stderr_log"
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n "Stopping $name.."
kill `get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n "Starting Snowplow Mini..."
$up_cmd >> "$stdout_log" 2>> "$stderr_log" &
echo "done"
;;

echo -n "."
sleep 1
done
echo
stop)
echo -n "Stopping Snowplow Mini..."
$stop_cmd >> "$stdout_log" 2>> "$stderr_log" &
echo "done"
;;

if is_running; then
echo "Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo "Stopped"
if [ -f "$pid_file" ]; then
rm "$pid_file"
fi
fi
else
echo "Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo "Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo "Running"
else
echo "Stopped"
exit 1
fi
;;
echo -n "Restarting Snowplow Mini..."
$down_cmd >> "$stdout_log" 2>> "$stderr_log" &
$up_cmd >> "$stdout_log" 2>> "$stderr_log" &
echo "done"
;;

*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
echo "Usage: /etc/init.d/snowplow_mini {start|stop|restart|status}"
exit 1
;;
esac

exit 0
exit 0
2 changes: 0 additions & 2 deletions provisioning/roles/docker/files/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ services:
image: docker.elastic.co/kibana/kibana-oss:6.3.1
container_name: kibana
restart: always
environment:
- /Users/oguzhanunlu/work/snowplow-mini/provisioning/resources/elasticsearch/config/kibana.yml:/usr/share/kibana/config/kibana.yml
ports:
- "5601:5601"
depends_on:
Expand Down
4 changes: 4 additions & 0 deletions provisioning/roles/docker/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,10 @@
become: yes
shell: cd {{main_dir}} && docker-compose up -d && sleep 20

- name: Increase mmap count to recommended 262144 for Elasticsearch
become: yes
shell: echo "vm.max_map_count=262144" >> /etc/sysctl.conf && service procps restart

- name: Wait for Elasticsearch port 9200 to become open on the host, don't start checking for 10 seconds
wait_for:
port: 9200
Expand Down
4 changes: 0 additions & 4 deletions provisioning/roles/sp_mini_7_setup_init/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,10 +29,6 @@
become: yes
shell: systemctl start snowplow_mini_control_plane_api

- name: Increase mmap count to recommended 262144 for Elasticsearch
become: yes
shell: echo "vm.max_map_count=262144" >> /etc/sysctl.conf && service procps start

- cron:
name: "Add cronjob to crop ES good index's docs older than a week"
special_time: weekly
Expand Down

0 comments on commit f380192

Please sign in to comment.