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