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
Added note to install netcat before calling wait-for to avoid time out messages.
Latest commit 8d9b444 Oct 31, 2019
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 Update 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

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


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


To check if is available:

$ ./wait-for -- echo "Eficode site is up"

Connection to port 80 [tcp/http] succeeded!
Eficode site is up

To wait for database container to become available:

version: '2'

    image: postgres:9.4

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


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


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

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

You can’t perform that action at this time.