|
|
@ -15,6 +15,8 @@ |
|
|
|
# limitations under the License. |
|
|
|
# limitations under the License. |
|
|
|
# |
|
|
|
# |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set -x |
|
|
|
|
|
|
|
|
|
|
|
_init () { |
|
|
|
_init () { |
|
|
|
scheme="http://" |
|
|
|
scheme="http://" |
|
|
|
address="127.0.0.1:9000" |
|
|
|
address="127.0.0.1:9000" |
|
|
@ -23,32 +25,32 @@ _init () { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
healthcheck_main () { |
|
|
|
healthcheck_main () { |
|
|
|
# In distributed environment like Swarm, traffic is routed |
|
|
|
# In distributed environment like Swarm, traffic is routed |
|
|
|
# to a container only when it reports a `healthy` status. So, we exit |
|
|
|
# to a container only when it reports a `healthy` status. So, we exit |
|
|
|
# with 0 to ensure healthy status till distributed Minio starts (120s). |
|
|
|
# with 0 to ensure healthy status till distributed Minio starts (120s). |
|
|
|
# |
|
|
|
# |
|
|
|
# Refer: https://github.com/moby/moby/pull/28938#issuecomment-301753272 |
|
|
|
# Refer: https://github.com/moby/moby/pull/28938#issuecomment-301753272 |
|
|
|
if [ $(( $(date +%s) - start )) -lt 120 ]; then |
|
|
|
if [ $(( $(date +%s) - start )) -lt 120 ]; then |
|
|
|
exit 0 |
|
|
|
exit 0 |
|
|
|
else |
|
|
|
else |
|
|
|
# Get the http response code |
|
|
|
# Get the http response code |
|
|
|
http_response=$(curl -s -k -o /dev/null -I -w "%{http_code}" \ |
|
|
|
http_response=$(curl -H "User-Agent: Mozilla" -s -k -o /dev/null -I -w "%{http_code}" \ |
|
|
|
${scheme}${address}${resource}) |
|
|
|
${scheme}${address}${resource}) |
|
|
|
|
|
|
|
|
|
|
|
# Get the http response body |
|
|
|
# Get the http response body |
|
|
|
http_response_body=$(curl -k -s ${scheme}${address}${resource}) |
|
|
|
http_response_body=$(curl -H "User-Agent: Mozilla" -k -s ${scheme}${address}${resource}) |
|
|
|
|
|
|
|
|
|
|
|
# server returns response 403 and body "SSL required" if non-TLS |
|
|
|
# server returns response 403 and body "SSL required" if non-TLS |
|
|
|
# connection is attempted on a TLS-configured server. Change |
|
|
|
# connection is attempted on a TLS-configured server. Change |
|
|
|
# the scheme and try again |
|
|
|
# the scheme and try again |
|
|
|
if [ "$http_response" = "403" ] && \ |
|
|
|
if [ "$http_response" = "403" ] && \ |
|
|
|
[ "$http_response_body" = "SSL required" ]; then |
|
|
|
[ "$http_response_body" = "SSL required" ]; then |
|
|
|
scheme="https://" |
|
|
|
scheme="https://" |
|
|
|
http_response=$(curl -s -k -o /dev/null -I -w "%{http_code}" \ |
|
|
|
http_response=$(curl -H "User-Agent: Mozilla" -s -k -o /dev/null -I -w "%{http_code}" \ |
|
|
|
${scheme}${address}${resource}) |
|
|
|
${scheme}${address}${resource}) |
|
|
|
fi |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
# If http_repsonse is 200 - server is up. When MINIO_BROWSER is |
|
|
|
# If http_repsonse is 200 - server is up. When MINIO_BROWSER is |
|
|
|
# set to off, curl responds with 404. We assume that the server |
|
|
|
# set to off, curl responds with 404. We assume that the server |
|
|
|
# is up |
|
|
|
# is up |
|
|
|
[ "$http_response" = "200" ] || [ "$http_response" = "404" ] |
|
|
|
[ "$http_response" = "200" ] || [ "$http_response" = "404" ] |