2 个版本

0.1.1 2019年11月12日
0.1.0 2019年11月12日

#14#同步

MIT 许可证

7KB
127 代码行

等待另一个服务变得可用

wait_for 是一个基于 Rust 的命令行界面,旨在同步像 Docker 容器这样的服务。它深受 eficode/wait-for 的启发,但重写为使用 Rust。

安装

要安装 CLI,首先需要本地克隆仓库

git clone https://github.com/aktitarov/wait_for.git && cd wait_for

然后使用 cargo 将其安装到您的路径

cargo install --path .

用法

Waits for another service to become available

USAGE:
    wait_for [OPTIONS] --host <host> --port <port> [command]...

FLAGS:
        --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -h, --host <host>          Sets host of service to be watched
    -p, --port <port>          Sets port of service to be watched
    -t, --timeout <timeout>    Sets timeout in secons, zero for no timeout

ARGS:
    <command>...    Command to execute after service is available

示例

检查 google.com 是否可用

wait_for -h www.google.com -p 80 -- echo "Google is up"

等待数据库容器变得可用

version: '3'

service:
  database:
    image: postgres:latest
  app:
    build: .
    command: sh -c 'wait_for -h database -p 5432 -- ./target/release/app'
    depends_on:
      - database

注意

在运行命令之前,请确保 Dockerfile 中已安装 netcat。

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

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

依赖项

~750KB