image

Define qual "imagem" será utilizada para levantar a instância do container. Atualmente os providers disponíveis são docker e dockerfile. No primeiro caso a imagem é baixada do Docker Registry e no segundo caso, dockerfile, é realizado o build localmente.

Uso:

image: { docker: '[NAMESPACE/REPOSITORY:TAG]' },
image: { dockerfile: './CAMINHO_DO_DOCKERFILE' },

Docker:

A imagem é baixada do Docker Registry

// modo reduzido
image: { docker: '[NAMESPACE/REPOSITORY:TAG]' },

// explícito
image: {
    provider: 'docker',
    repository: 'NAMESPACE/REPOSITORY',
    tag: 'TAG'
},

Dockerfile:

É realizado o build localmente. Observe que é possivel especificar a pasta que contém o arquivo Dockerfile ou o próprio Dockerfile, que neste caso, não precisa possuir o nome Dockerfile.

Para saber como construir seu Dockerfile consulte a documentação. Observe que aqui temos o mesmo comportamento do comando docker build, inclusive o comportamento de enviar ao Docker todos os arquivos que estão na pasta onde esta o Dockerfile, para evitar lentidão no processo de uma olhada em como criar um .dockerignore e eliminar do processo de build arquivos que não são necessários.

// modo reduzido
image: { dockerfile: 'PASTA_COM_DOCKERFILE' },
image: { dockerfile: 'CAMINHO_DO_DOCKERFILE' },

// explícito
image: {
    provider: 'dockerfile',
    path: 'PASTA_COM_DOCKERFILE'
},
image: {
    provider: 'dockerfile',
    path: 'CAMINHO_DO_DOCKERFILE'
},
Exemplos:
// Podemos definir tags diferentes e assim pegar versões diferentes
// do repositório (https://registry.hub.docker.com/u/azukiapp/azktcl/)
image: { docker: "azukiapp/azktcl:0.0.1" },
image: { docker: "azukiapp/azktcl:0.0.2" },

// Todas as configurações abaixo apontam para a mesma imagem,
// ou seja, várias tags podem apontar para a mesma imagem.
// Observe que, para as imagens oficiais do docker, não é
// necessário nem informar o namespace (library, no caso).
image: { docker: "node:0" },
image: { docker: "azukiapp/node" },
image: { docker: "node:latest" },
// library/ é opcional somente neste caso, para os repositórios padrões do Docker
image: { docker: "library/node:latest" },