@@ -93,27 +93,41 @@ case "$1" in
9393 # start the app
9494 if is_image_buildstep_based " $IMAGE_GENERIC :$TAG " ; then
9595 # buildstep
96- INT_PORT=" $APP_PORT "
97- id=$( docker run --cidfile=" $( get_cid_file_name app) " -d -p " $INT_PORT " -e PORT=" $INT_PORT " --name=" $( get_app_container_name app) " $DOCKER_ARGS " $IMAGE_GENERIC :$TAG " /start)
98- addr=$( docker port $id " $INT_PORT " )
99- EXT_ADDR=" ${addr%:* } "
100- EXT_PORT=" ${addr#*: } "
96+ id=$( docker run --cidfile=" $( get_cid_file_name app) " -d --name=" $( get_app_container_name app) " $DOCKER_ARGS " $IMAGE_GENERIC :$TAG " /start)
10197 else
10298 # Dockerfile
103- EXT_PORT=" "
104- INT_PORT=" "
105- EXT_ADDR=" "
106- id=$( docker run --cidfile=" $( get_cid_file_name app) " -d -P --env-file=<( : | pluginhook env-vars " $APP " ) --name=" $( get_app_container_name app) " $DOCKER_ARGS " $IMAGE_GENERIC :$TAG " )
107- sleep 5s
108- for test_port in 80 8080 " $APP_PORT " ; do
109- if addr=$( docker port $id " $test_port " 2> /dev/null) ; then
110- INT_PORT=" $test_port "
111- EXT_ADDR=" ${addr%:* } "
112- EXT_PORT=" ${addr#*: } "
113- fi
114- done
99+ id=$( docker run --cidfile=" $( get_cid_file_name app) " -d --env-file=<( : | pluginhook env-vars " $APP " ) --name=" $( get_app_container_name app) " $DOCKER_ARGS " $IMAGE_GENERIC :$TAG " )
115100 fi
116101
102+ EXT_IP=" $( docker inspect --format ' {{ .NetworkSettings.IPAddress }}' " $id " ) "
103+ EXT_PORT=" "
104+ INT_PORT=" "
105+
106+ for CONTAINER_PORT in $( docker inspect --format ' {{range $p, $conf := .NetworkSettings.Ports}}{{$p}} {{end}}' " $id " ) ; do
107+ case " $CONTAINER_PORT " in
108+ " 5000/tcp" )
109+ EXT_PORT=" 5000"
110+ INT_PORT=" 5000"
111+ break
112+ ;;
113+
114+ " 8080/tcp" )
115+ EXT_PORT=" 8080"
116+ INT_PORT=" 8080"
117+ break
118+ ;;
119+
120+ " 80/tcp" )
121+ EXT_PORT=" 80"
122+ INT_PORT=" 80"
123+ break
124+ ;;
125+
126+ * )
127+ ;;
128+ esac
129+ done
130+
117131 if [[ " $EXT_PORT " == " " ]] || [[ " $INT_PORT " == " " ]]; then
118132 echo -n > " $DOKKU_ROOT /$APP /URL"
119133 verbose " No external HTTP port published"
@@ -130,15 +144,15 @@ case "$1" in
130144
131145 if [[ " $PREBOOT " != " " ]]; then
132146 verbose " Running pre-flight checks..."
133- if ! pluginhook check-preboot " $APP " " $id " " $EXT_PORT "
147+ if ! pluginhook check-preboot " $APP " " $id " " $EXT_PORT " " $EXT_IP "
134148 then
135149 stop_and_remove_container " $id "
136150 fail " Application failed to deploy!"
137151 fi
138152 fi
139153
140- echo " http://$( < " $DOKKU_ROOT /HOSTNAME " ) :$EXT_PORT " > " $DOKKU_ROOT /$APP /URL"
141- pluginhook post-deploy " $APP " " $EXT_PORT " " $INT_PORT "
154+ echo " http://$EXT_IP :$EXT_PORT " > " $DOKKU_ROOT /$APP /URL"
155+ pluginhook post-deploy " $APP " " $EXT_PORT " " $INT_PORT " " $EXT_IP "
142156 info2 " Application deployed:"
143157 verbose " $( dokku url $APP ) "
144158 fi
0 commit comments