Fix healthcheck issue with Docker containers (#5011)

Fixes #5010
master
Harshavardhana 7 years ago committed by Dee Koder
parent 88938340b3
commit c46c2a6dd6
  1. 11
      Dockerfile
  2. 2
      Dockerfile.release
  3. 0
      dockerscripts/docker-entrypoint.sh
  4. 8
      dockerscripts/healthcheck.sh

@ -8,8 +8,10 @@ ENV CGO_ENABLED 0
WORKDIR /go/src/github.com/minio/ WORKDIR /go/src/github.com/minio/
COPY dockerscripts/docker-entrypoint.sh dockerscripts/healthcheck.sh /usr/bin/
RUN \ RUN \
apk add --no-cache ca-certificates && \ apk add --no-cache ca-certificates curl && \
apk add --no-cache --virtual .build-deps git go musl-dev && \ apk add --no-cache --virtual .build-deps git go musl-dev && \
echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \ echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf && \
go get -v -d github.com/minio/minio && \ go get -v -d github.com/minio/minio && \
@ -19,12 +21,11 @@ RUN \
EXPOSE 9000 EXPOSE 9000
COPY buildscripts/docker-entrypoint.sh /usr/bin/
RUN chmod +x /usr/bin/docker-entrypoint.sh
ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"] ENTRYPOINT ["/usr/bin/docker-entrypoint.sh"]
VOLUME ["/export"] VOLUME ["/export"]
HEALTHCHECK --interval=30s --timeout=5s \
CMD /usr/bin/healthcheck.sh
CMD ["minio"] CMD ["minio"]

@ -2,7 +2,7 @@ FROM alpine:3.6
MAINTAINER Minio Inc <dev@minio.io> MAINTAINER Minio Inc <dev@minio.io>
COPY buildscripts/docker-entrypoint.sh buildscripts/healthcheck.sh /usr/bin/ COPY dockerscripts/docker-entrypoint.sh dockerscripts/healthcheck.sh /usr/bin/
RUN \ RUN \
apk add --no-cache ca-certificates && \ apk add --no-cache ca-certificates && \

@ -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"
@ -32,11 +34,11 @@ healthcheck_main () {
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
@ -44,7 +46,7 @@ healthcheck_main () {
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
Loading…
Cancel
Save