Skip to content
./wait-for is a script to wait for another service to become available.
Shell Dockerfile
Branch: master
Clone or download
#20 Compare This branch is 9 commits ahead of mrako:master.
and and Atihinen Update README.md
Added note to install netcat before calling wait-for to avoid time out messages.
Latest commit 8d9b444 Oct 31, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore Add testing using bats May 3, 2017
.travis.yml Move travis build and status under Eficode May 6, 2017
Dockerfile Add testing using bats May 3, 2017
LICENSE initial commit May 2, 2017
README.md Update README.md Nov 1, 2019
package.json add name and version so it can be installed with npm Aug 4, 2017
wait-for use 'exec "$@"' Aug 25, 2017
wait-for.bats Add testing using bats May 3, 2017

README.md

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, 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

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

You can’t perform that action at this time.