[
  {
    "path": ".github/workflows/publish.yml",
    "content": "name: Publish Docker image\n\non:\n  release:\n    types: [published]\n\njobs:\n  push_to_registry:\n    name: Push Docker image to Docker Hub\n    runs-on: ubuntu-latest\n    steps:\n      - name: Check out the repo\n        uses: actions/checkout@v2\n\n      - name: Extract metadata (tags, labels) for Docker\n        id: meta\n        # https://github.com/docker/metadata-action\n        uses: docker/metadata-action@v3\n        with:\n          images: crccheck/hello-world\n\n      - name: Log in to DockerHub\n        uses: docker/login-action@v1\n        with:\n          username: ${{ secrets.DOCKER_USERNAME }}\n          password: ${{ secrets.DOCKERHUB_TOKEN }}\n\n      - name: Build and push\n        # https://github.com/docker/build-push-action\n        uses: docker/build-push-action@v2\n        with:\n          context: .\n          push: true\n          tags: ${{ steps.meta.outputs.tags }}\n          labels: ${{ steps.meta.outputs.labels }}\n"
  },
  {
    "path": ".travis.yml",
    "content": "services:\n  - docker\n\nbranches:\n  only:\n    - master\n\nbefore_install:\n  - docker build -t hello-world .\n  - docker run -d -p 127.0.0.1:8000:8000 hello-world\n\nscript:\n  - docker ps | grep hello-world\n  - curl --fail localhost:8000\n  - curl --fail -I localhost:8000\n"
  },
  {
    "path": "Dockerfile",
    "content": "FROM busybox:latest\nENV PORT=8000\nLABEL maintainer=\"Chris <c@crccheck.com>\"\n\nADD index.html /www/index.html\n\n# EXPOSE $PORT\n\nHEALTHCHECK CMD nc -z localhost $PORT\n\n# Create a basic webserver and run it until the container is stopped\nCMD echo \"httpd started\" && trap \"exit 0;\" TERM INT; httpd -v -p $PORT -h /www -f & wait\n"
  },
  {
    "path": "README.md",
    "content": "# Hello World\n\nThis is a simple Docker image that just gives http responses on port 8000. It's\nsmall enough to fit on one floppy disk:\n\n```bash\n$ docker images | grep hell\nREPOSITORY               TAG       IMAGE ID        CREATED          VIRTUAL SIZE\ncrccheck/hello-world     latest    2b28c6ad8d1b    4 months ago     1.2MB\n```\n\nI made this initially because there were lots of scenarios where I wanted a\nDocker container that speaks HTTP, but every guide used images that took\nseconds to download. Armed with a tiny Docker image, I could test things in a\nfresh environment in under a second. I like faster feedback loops.\n\n**THANK YOU** to the surprisingly large number of contributors that have made\nthis better for everyone over the years.\n\n## Sample Usage\n\n### Starting a web server on port 80\n\n```bash\n$ docker run -d --rm --name web-test -p 80:8000 crccheck/hello-world\n```\n\nYou can now interact with this as if it were a dumb web server:\n\n```\n$ curl localhost\n<xmp>\nHello World\n...snip...\n```\n\n```\n$ curl -I localhost\nHTTP/1.0 200 OK\n```\n\n```\n$ curl -X POST localhost/super/secret\n<HTML><HEAD><TITLE>501 Not Implemented</TITLE></HEAD>\n...snip...\n```\n\n```\n$ curl --write-out %{http_code} --silent --output /dev/null localhost\n200\n```\n"
  },
  {
    "path": "index.html",
    "content": "<pre>\nHello World\n\n\n                                       ##         .\n                                 ## ## ##        ==\n                              ## ## ## ## ##    ===\n                           /\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\"\\___/ ===\n                      ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~\n                           \\______ o          _,/\n                            \\      \\       _,'\n                             `'--.._\\..--''\n</pre>\n"
  }
]