Sign inSign up

aelsabbahy/goss

By aelsabbahy

•Updated almost 6 years ago

Easy docker health checks, /healthz endpoints, and container delays

Image
7

1M+

aelsabbahy/goss repository overview

⁠Goss Docker container

⁠Dockerfiles

⁠Goss

Not sure what Goss is, read these:

⁠Using the base image

This is a simple alpine image with Goss preinstalled on it. Can be used as a base image for your projects to allow for easy health checking.

⁠Mount example

Create the container

docker run --name goss aelsabbahy/goss goss

Create your container and mount goss

docker run --rm -it --volumes-from goss --name weby nginx

Run goss inside your container

docker exec weby /goss/goss autoadd nginx
⁠HEALTHCHECK example
FROM aelsabbahy/goss:latest

COPY goss/ /goss/
HEALTHCHECK --interval=1s --timeout=6s CMD goss -g /goss/goss.yaml validate

# your stuff..
⁠Startup delay example
FROM aelsabbahy/goss:latest

COPY goss/ /goss/

# Alternatively, the -r option can be set
# using the GOSS_RETRY_TIMEOUT env variable
CMD goss -g /goss/goss.yaml validate -r 5m && exec real_comand..

⁠Using the onbuild image

Create a goss/goss.yaml file and optionally a checks folder in the following structure:

.
|-- Dockerfile
`-- goss/
    |-- checks/
    |   `-- db_login.sh
    `-- goss.yaml

In your Dockerfile use the onbuild container as follows:

⁠Serve a healthz endpoint
FROM aelsabbahy/goss:onbuild
CMD ["serve"]
⁠Run tests until they pass or we timeout
FROM aelsabbahy/goss:onbuild
CMD ["validate", "--retry-timeout", "5m", "--sleep", "10s"]

Tag summary

Content type

Image

Digest

Size

8 MB

Last updated

almost 6 years ago

docker pull aelsabbahy/goss