docker_service

Use the docker_service InSpec audit resource to verify a docker swarm service.


Syntax

A docker_service resource block declares the service by name:

describe docker_service('foo') do
  it { should exist }
  its('id') { should eq '2ghswegspre1' }
  its('repo') { should eq 'alpine' }
  its('tag') { should eq 'latest' }
end


Resource Parameter Examples

The resource allows you to pass in a service id:

describe docker_service(id: '2ghswegspre1') do
  ...
end

You can also pass in the fully-qualified image:

describe docker_service(image: 'localhost:5000/alpine:latest') do
  ...
end


Property Examples

The following examples show how to use InSpec docker_service resource.

id

The id property returns the service id:

its('id') { should eq '2ghswegspre1' }

image

The image property tests the value of the image. It is a combination of repository:tag:

its('image') { should eq 'alpine:latest' }

mode

The mode property tests the value of the service mode:

its('mode') { should eq 'replicated' }

name

The name property tests the value of the service name:

its('name') { should eq 'foo' }

ports

The ports property tests the value of the service’s published ports:

its('ports') { should include '*:8000->8000/tcp' }

repo

The repo property tests the value of the repository name:

its('repo') { should eq 'alpine' }

replicas

The replicas property tests the value of the service’s replica count:

its('replicas') { should eq '3/3' }

tag

The tag property tests the value of image tag:

its('tag') { should eq 'latest' }

Test a docker service

describe docker_service('foo') do
  it { should exist }
  its('id') { should eq '2ghswegspre1' }
  its('repo') { should eq 'alpine' }
  its('tag') { should eq 'latest' }
end


Matchers

For a full list of available matchers, please visit our matchers page.

exist

The exist matcher tests if the image is available on the node:

it { should exist }