14 个版本

0.2.11 2020年11月15日
0.2.10 2020年11月15日
0.2.9 2020年9月26日
0.1.1 2020年9月13日

#17#zeromq

每月 42 次下载

MITGPL-3.0 许可

8MB
774

rust-ds1090

dump1090 至 ZeroMQ 数据流桥接器

包: crates.io/crates/ds1090

Docker 镜像: hub.docker.com/r/jonikahara/ds1090

测试

cargo test
cargo fuzz run fuzz_target_parse_message

Docker

为了进行更可控的部署并消除“在我的电脑上能工作”的综合征,我们始终确保我们的软件在 Docker 下也能运行。

这也是快速开始使用标准开发环境的一种方法。

SSH 代理转发

我们需要 buildkit

export DOCKER_BUILDKIT=1

并且将代理转发到运行实例的确切方式在 OSX 和 Linux 上是不同的

export DOCKER_SSHAGENT="-v /run/host-services/ssh-auth.sock:/run/host-services/ssh-auth.sock -e SSH_AUTH_SOCK=/run/host-services/ssh-auth.sock"

和 Linux

export DOCKER_SSHAGENT="-v $SSH_AUTH_SOCK:$SSH_AUTH_SOCK -e SSH_AUTH_SOCK"

创建开发容器

构建镜像,创建容器并启动它(将 1234 端口切换为 src/defaultconfig.rs 中的端口)

docker build --ssh default --target devel_shell -t ds1090:devel_shell .
docker create --name ds1090_devel -p 1234:1234 -v `pwd`":/app" -it -v /tmp:/tmp `echo $DOCKER_SSHAGENT` ds1090:devel_shell
docker start -i ds1090_devel

pre-commit 考虑事项

如果你在 Docker 中而不是本地环境中工作,你需要在 Docker 中运行 pre-commit 检查

docker exec -i ds1090_devel /bin/bash -c "pre-commit install"
docker exec -i ds1090_devel /bin/bash -c "pre-commit run --all-files"

你需要有一个正在运行的容器,请参阅上面。或者,你也可以使用 docker run 语法,但使用正在运行的容器会更快

docker run --rm -v `pwd`":/app" ds1090:devel_shell -c "pre-commit run --all-files"

测试套件

你可以在开发时使用 devel shell 运行 py.test,对于 CI,请使用 Dockerfile 中的 "test" 目标

docker build --ssh default --target test -t ds1090:test .
docker run --rm -v `pwd`":/app" `echo $DOCKER_SSHAGENT` ds1090:test

生产 Docker

还有一个 "生产" 目标可以运行应用程序(更改 "1234" 端口和 "myconfig.toml" 配置文件)

docker build --ssh default --target production -t ds1090:latest .
docker run --name ds1090 -v myconfig.toml:/app/docker_config.toml -p 1234:1234 -it -v /tmp:/tmp `echo $DOCKER_SSHAGENT` ds1090:latest

本地开发

待办事项:在完成操作后,请从文档中删除 repo init

TLDR

  • 初始化您的仓库(首先在线创建并记录远程 URI)

    git init
    git add .
    git commit -m 'Cookiecutter stubs'
    git remote add origin MYREPOURI
    git push origin master
    
  • 切换到分支

    git checkout -b my_branch
    
  • 确保您已安装 pre-commit 和 bump2version:pip3 install pre-commit bump2version

  • 确保您已安装 cargo:https://doc.rust-lang.net.cn/cargo/getting-started/installation.html

  • 安装项目依赖和 pre-commit 钩子

    cargo build
    pre-commit install
    pre-commit run --all-files
    
  • 准备就绪,尝试以下操作

    cargo run --bin ds1090 -- --defaultconfig >config.toml
    cargo run --bin ds1090 -- -vvv config.toml
    

在开发过程中定期运行 "pre-commit run --all-files" 和 "cargo test",特别是在提交之前,这将为您节省一些麻烦。

依赖关系

~13MB
~203K SLoC