Skip to content

Commit 287ca1e

Browse files
committed
docker: add healthchecks
1 parent ec9aa56 commit 287ca1e

File tree

3 files changed

+22
-2
lines changed

3 files changed

+22
-2
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ RUN adduser --system --home /var/lib/sqld --uid 666 --gid 666 sqld
4848
WORKDIR /var/lib/sqld
4949
USER sqld
5050

51-
COPY docker-entrypoint.sh /usr/local/bin
51+
COPY docker-entrypoint.sh docker-healthcheck.sh /usr/local/bin
5252

5353
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
5454
COPY --from=builder /target/release/sqld /bin/sqld
5555

56+
HEALTHCHECK --interval=2s CMD /usr/local/bin/docker-healthcheck.sh
5657
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
5758
CMD ["/bin/sqld"]

Dockerfile.dev

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ RUN apt update
2424

2525
COPY --from=builder /sqld/bin /bin/sqld
2626
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
27-
COPY docker-entrypoint.sh /usr/local/bin
27+
COPY docker-entrypoint.sh docker-healthcheck.sh /usr/local/bin
2828

2929
VOLUME [ "/var/lib/sqld" ]
3030

@@ -35,5 +35,6 @@ WORKDIR /var/lib/sqld
3535

3636
EXPOSE 5001 8080
3737

38+
HEALTHCHECK --interval=2s CMD /usr/local/bin/docker-healthcheck.sh
3839
ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"]
3940
CMD ["/bin/sqld"]

docker-healthcheck.sh

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
SQLD_HTTP_LISTEN_ADDR="${SQLD_HTTP_LISTEN_ADDR:-"0.0.0.0:8080"}"
5+
SQLD_HTTP_LISTEN_ADDR="${SQLD_HTTP_LISTEN_ADDR//:/\/}"
6+
7+
exec 3<>"/dev/tcp/$SQLD_HTTP_LISTEN_ADDR"
8+
echo -e "GET /health HTTP/1.1\r\nConnection: close\r\n\r\n" >&3
9+
RESPONSE=$(cat <&3)
10+
exec 3<&- && exec 3>&-
11+
12+
if echo "$RESPONSE" | grep -q "HTTP/1.1 200 OK"; then
13+
exit 0
14+
else
15+
echo "Did not receive HTTP 200 response"
16+
echo "$RESPONSE"
17+
exit 1
18+
fi

0 commit comments

Comments
 (0)