Docker Compose 1.3.0 – O que vem por ae

Standard

A comunidade Docker está muito ansiosa com o lançamento da nova versão do docker-compose. Com isso vamos adiantar logo quais as novidades que podem aparecer no próximo lançamento.

docker-whales-transparent

Labels

Com o advento da funcionalidade de labels do Docker 1.6, o compose agora passa usar essas marcações ao invés de manipular o nome do container, como era feito anteriormente para gerenciar os containers. Isso é muito bom para performance, inclusive

Sem containers intermediários

Não será mais necessário utilizar containers intermediários quando um ambiente é recriado. Isso torna o docker-compose menos complexo e mais resiliente a falhas.

Recriação inteligente de containers

Como funcionalidade experimental, o compose recriará apenas containers que tiveram configuração modificada no docker-compose.yml. Isso se tornará um padrão no futuro, mas hoje é executado dessa forma apenas se usado o parâmetro “–x-smart-recreate” no comando “docker-compose up”.

Busca inteligente de configuração

Quando invocado o docker-compose dentro de um subdiretório do projeto, o compose verificará se existe docker-compose.yml nas pastas acima, até encontrar o arquivo de configuração

Adição de novos parâmetros do Docker na configuração

Nem todos os parâmetros do Docker já são permitidos no docker-compose, sendo assim novas opções serão lançadas nessa versão:

  • dockerfile: Permitir usar um arquivo Dockerfile alternativo.
  • labels: Permitir adição de metadados nos containers.
  • extra_host: Permitir adição de entradas no “/etc/hosts” do container.
  • pid: Permitir utilização do mesmo PID namespace do host.
  • cpuset: Permitir especificação de qual CPU o container estará restrito a utilizar.
  • read_only: Permitir montagem do container como apenas leitura.
  • security_opt: Permitir especificações de segurança.
  • log_driver: Permitir especificar driver para log.

Correção de bugs

Alguns bugs foram corrigidos nessa versão, mas não encontrei uma lista organizada para mostrar aqui 🙂

Gostou? Quer usar?

Lembre-se que ainda não é instável, ok? Outra coisa importante atentar é que essa versão trás uma mudança na infraestrutura interna do compose, ou seja, caso você já tenha um ambiente hoje gerido pelo compose 1.2.0, você precisará adequar seu ambiente antigo, caso deseje atualizar a versão.

A adequação é muito simples:

docker-compose migrate-to-labels

Caso não tenha nenhum problema em apagar os containers, pode fazer isso, assim o compose instanciará novos containers já no modelo novo.

Pra ba ixar o compose novo, continua muito simples:

# curl -L https://github.com/docker/compose/releases/download/1.3.0rc1/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose

Referência:

https://github.com/docker/compose/releases/tag/1.3.0rc1