This document is relevant for: Inf1

Docker Entrypoint Example - Application and Runtime in same Container#

 1#!/bin/bash
 2set -e
 3
 4wait_for_nrtd() {
 5  nrtd_sock="/run/neuron.sock"
 6  SOCKET_TIMEOUT=300
 7  is_wait=true
 8  wait_time=0
 9  i=1
10  sp="/-\|"
11  echo -n "Waiting for neuron-rtd  "
12  pid=$1
13  while $is_wait; do
14    if [ -S "$nrtd_sock" ]; then
15      echo "$nrtd_sock Exist..."
16      is_wait=false
17    else
18      sleep 1
19      wait_time=$((wait_time + 1))
20      if [ "$wait_time" -gt "$SOCKET_TIMEOUT" ]; then
21        echo "neuron-rtd failed to start, exiting"
22	      cat /tmp/nrtd.log
23        exit 1
24      fi
25      printf "\b${sp:i++%${#sp}:1}"
26    fi
27  done
28  cat /tmp/nrtd.log
29}
30
31# Start neuron-rtd
32/opt/aws/neuron/bin/neuron-rtd -g unix:/run/neuron.sock --log-console  >>  /tmp/nrtd.log 2>&1 &
33nrtd_pid=$!
34echo "NRTD PID: "$nrtd_pid""
35#wait for nrtd to be up (5 minutes timeout)
36wait_for_nrtd $nrtd_pid
37export NEURON_RTD_ADDRESS=unix:/run/neuron.sock
38nrtd_present=1
39
40if [[ "$1" = "serve" ]]; then
41  # Start your application here!
42  # e.g: 'python my_server_app.py'
43else
44    eval "$@"
45fi
46
47# prevent docker exit
48tail -f /dev/null

This document is relevant for: Inf1