Sign inSign up

sdyip/wait-for

By sdyip

•Updated almost 6 years ago

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

Image
0

4.0K

sdyip/wait-for repository overview

⁠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.

Build Status

⁠Usage

./wait-for host:port [-t timeout] [-- command args]
  -q | --quiet                        Do not output any status messages
  -t TIMEOUT | --timeout=timeout      Timeout in seconds, or ∞ for waiting forever
  -- 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

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

⁠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

⁠Note

Make sure netcat is installed in your Dockerfile before running the command.

RUN apt-get -q update && apt-get -qy install netcat

https://stackoverflow.com/questions/44663180/docker-why-does-wait-for-always-time-out⁠

Tag summary

Content type

Image

Digest

Size

2.7 MB

Last updated

almost 6 years ago

docker pull sdyip/wait-for