Skip to content
forked from eficode/wait-for

./wait-for is a script to wait for another service to become available.

License

Notifications You must be signed in to change notification settings

capripot/wait-for

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Wait for another service to become available

./wait-for is a script designed to synchronize services like docker containers. It is sh and alpine compatible. It was inspired by vishnubob/wait-for-it, but the core has been rewritten at Eficode by dsuni and mrako.

When using this tool, you only need to pick the wait-for file as part of your project.

It uses netcat for testing ports, and wget for HTTP status.

Build Status

Usage

./wait-for host:port|url [-t timeout] [-- command args]
  -q | --quiet                        Do not output any status messages
  -t TIMEOUT | --timeout=timeout      Timeout in seconds, zero for no timeout
  -- COMMAND ARGS                     Execute command with args after the test finishes

Examples

To check if eficode.com is available:

$ ./wait-for www.eficode.com:80 -- echo "Eficode site is up"

Connection to www.eficode.com port 80 [tcp/http] succeeded!
Eficode site is up

$ ./wait-for http://www.eficode.com:80/ping -- echo "Eficode site is up"

To wait for database container to become available:

version: '2'

services:
  db:
    image: postgres:9.4

  backend:
    build: backend
    command: sh -c './wait-for db:5432 -- npm start'
    depends_on:
      - db

To wait for your API service to become available:

version: '2'

services:
  db:
    image: postgres:9.4

  api:
    image: my_awesome_api

  tests:
    build: tests
    command: sh -c './wait-for http://api/ping -- jest test'
    depends_on:
      - db
      - api

Testing

Ironically testing is done using bats, which on the other hand is depending on bash.

docker build -t wait-for .
docker run -t wait-for

About

./wait-for is a script to wait for another service to become available.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 94.9%
  • Dockerfile 5.1%