我已经在Elixir中创建了一个简单的Sonatype API客户端,该客户端返回存储库和存储库的组件。
我现在需要在Elixir中创建测试,以便可以验证存储库。我正在使用docker-compose启动sonatype容器。我需要测试以通过docker-compose up使用新的Docker(sonatype)存储库开始,然后验证其中没有任何容器。然后从那里添加一个或多个图像,然后验证是否存在我添加的图像。作为清理,我可以删除那些图像。它必须是一组可以在CI中运行的自动化测试,或者用户可以在其本地计算机上运行。
我的问题是,如何通过.exs测试文件或bash脚本文件来做到这一点?
答案 0 :(得分:1)
您可以使用类似以下内容来构建docker-compose.yml
文件:
version: "2.2"
services:
my_app:
build:
context: .
ports:
- 4000:4000
command: >
bash -c 'wait-for-it -t 60 sonatype:1234
&& _build/prod/rel/my_app/bin/my_app start'
tests:
extends:
service: my_app
environment:
MIX_ENV: test
LOG_LEVEL: "warn"
working_dir: /my_app
depends_on:
- sonatype
command:
bash -c 'mix test'
sonatype:
image: sonatype/nexus3:3.19.1
ports:
- "1234:1234"
然后您将拥有一个test.sh
这样的bash脚本:
docker-compose build tests
docker-compose run tests
EXIT=$?
docker-compose down --volumes
exit $EXIT
我不熟悉Sonatype,所以这可能没有意义,您需要适应。