Normalmente para gerar uma imagem docker executável utilizamos o comando docker build, que copia o código fonte de nossa app para dentro de uma imagem preparada especialmente para a linguagem.

Deste padrão surge a necessidade de criar uma ferramenta que possa uniformizar o mecanismo de build entre diversas linguagens, oferecendo flexibilidade, reprodutibilidade, segurança e velocidade.

Abaixo disponibilizamos dois videos que introduzem o usuário ao mecanismo Source-to-Image (s2i para os íntimos) criado especialmente para suprir os propósitos acima.

Aqui na Getup Cloud utilizamos o S2I para permitir que nossos usuários rodem o mesmo ambiente de execução da produção no host de desenvolvimento local.

Experimente grátis em https://getupcloud.com.

S2I — Introdução

[embed]https://www.youtube.com/watch?v=mtSL3QWBli4[/embed]

Link para download: https://github.com/openshift/source-to-image/releases

Baixe o image-builder para sua linguagem:

$ sudo docker pull getupcloud/php-70-centos7

Algumas imagens populares:

getupcloud/php-70-centos7
centos/php-56-centos7
ryanj/centos7-s2i-nodejs:6
centos/python-27-centos7
centos/python-35-centos7
centos/ruby-23-centos7
getupcloud/dotnet-core-10-centos7
openshift/wildfly-100-centos7

Para criar sua imagem executável utilize o comando s2i:

$ sudo s2i build /seu/fonte/ getupcloud/php-70-centos7 blog

TIP: a flag — loglevel=[0–5] permite ajustar a quantidade de mensagens durante o build.

Sua imagem está pronta para execução:

$ sudo docker run -it — rm -p 8080:8080 blog
$ curl http://127.1:8080/

S2I — Hooks de build e execução

[embed]https://www.youtube.com/watch?v=K9xz2aBjkQk[/embed]

Crie o arquivo test.sh na raiz do repo com a lógica de testes para sua app.

$ mkdir -p .s2i/bin
$ cat > .s2i/bin/assemble <<EOF

source $STI_SCRIPTS_PATH/assemble

if [ -e ./test.sh ]; then
echo '---> Executando testes...'
bash ./test.sh
fi
EOF
$ git add .s2i/bin/assemble
$ git commit .s2i/bin/assemble -m 'Add assemble hook'

Ao fazer build o arquivo test.sh é executado. Se terminar com erro o script de build .s2i/bin/assemble também falha, interrompendo o build. Caso contrário, a nova imagem está pronta para executar.

Em breve teremos mais videos sobre essa ferramenta.

Até a próxima!

[embed]https://upscri.be/375ca4/[/embed]

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos

Social

Fale conosco

Almeda Campinas 802, CJ 12, Jardim Paulista,

São Paulo - SP, 01404-001

Faça parte do time

Nossos conteúdos