Автотесты для образов docker
Docker сильно удобная штука для упаковки и доставки кода на сервера. Тестирование кода - задача рутинная и уже давно легко автоматизируемая.
А что на счет готовых образов docker? Мы же пишем Dockerfile, в котором есть определенные инструкции по установке пакетов, открытых портов и т.п. Это такой же код, как и само наше приложение внутри доккера. Его тоже стоит покрывать тестами и для этого тоже есть инструменты.
Goss
Goss - это инструмент, основанный на YAML, для тестирования конфигурации серверов. Он облегчает процесс написания тестов, позволяя пользователю создавать тесты из текущего состояния системы.
Пример goss.yml из документации:
port:
tcp:22:
listening: true
ip:
- 0.0.0.0
tcp6:22:
listening: true
ip:
- '::'
service:
sshd:
enabled: true
running: true
user:
sshd:
exists: true
uid: 74
gid: 74
groups:
- sshd
home: /var/empty/sshd
shell: /sbin/nologin
group:
sshd:
exists: true
gid: 74
process:
sshd:
running: true
Описывать тут особо нечего, все просто и понятно. Для доккера есть dgoss враппер, который позволяет писать такие тесты для доккера.
Интегрировать такие тесты в CI/CD процесс не сложно и весьма полезно.
Комментарии: