Início
Versões
Imagens
Configuração
Hot Deploying
Início
O OpenShift fornece o S2I habilitado em imagens Ruby para construir e rodar aplicações Ruby. O Ruby S2I builder image usa o código da sua aplicação com as dependências requeridas para criar uma nova imagem contendo sua aplicação Ruby. Esta imagem pode ser executada pelo OpenShift ou pelo Docker.
Versões
A versão atual que o OpenShift fornece do Ruby é 1.9, 2.0, 2.2 e 2.3.
Imagens
Estas imagens estão disponíveis na distribuição CentOS 7
Imagens baseadas em CentOS 7
Esta imagem está disponível no DockerHub. Para fazer download:
$ docker pull getupcloud/ruby-19-centos7
$ docker pull openshift/ruby-20-centos7
$ docker pull centos/ruby-22-centos7
$ docker pull centos/ruby-23-centos7
Para usar essa imagem, você pode acessa-las diretamente através desse registro de imagens, ou enviar para seu registro OpenShift Docker. Adicionalmente, você pode criar uma image stream que aponte para a imagem, no seu registro Docker ou numa localização externa. Os recursos do seu OpenShift podem agora fazer referencia ao ImageStream. Você pode encontrar exemplo de definições de image streams para todas as imagens do OpenShift.
Configuração
A imagem Ruby suporta variáveis de ambiente que podem ser setadas para controlar o comportamento do Ruby durante a execução.
Para configurar as variáveis de ambiente, você pode coloca-las dentro do arquivo .s2i/environment dentro do seu repositório, ou defini-las na seção environment de configuração do build da definição sourceStrategy.
Tabela 1. Variáveis de ambiente do Ruby
Nome da variável | Descrição |
RACK_ENV | Esta variável especifica o ambiente onde a aplicação vai rodar o deploy; exemplo, production, development, ou test. Cada um tem diferentes comportamentos em niveis de informações, páginas de erros, e instalação do gem. Os assets da aplicação são apenas compilados se o RACK_ENV estiver setado com production; o valor default é production. |
RAILS_ENV | Esta variável especifica o ambiente onde a aplicação vai rodar o deploy; exemplo, production, development, ou test. Cada um tem diferentes comportamentos em niveis de informações, páginas de erros, e instalação do gem. Os assets da aplicação são apenas compilados se o RAILS_ENV estiver setado com production; o valor default é ${RACK_ENV}. |
DISABLE_ASSET_COMPILATION | Quando definidar em true, esta variável desabilita o processo de compilação de assets. A compilação só acontece quando a aplicação roda em um ambiente de produção. Portanto, você pode usar essa variável quando os assets ja foram compilados. |
Hot Deploying
Hot deployment permite que você faça deploy rapidamente de sua aplicação sem ter que gerar um novo S2I build. O método para ativar o hot deployment nessa imagem é baseado no tipo de aplicação usado.
Aplicações Ruby on Rails
Para aplicações Ruby on Rails, execute o built da aplicação Rails com a variável de ambiente RAILS_ENV=development passada ao pod. Para um deployment config existente, você pode rodar o comando oc env:
$ oc env dc/rails-app RAILS_ENV=development
Outros tipos de aplicações Ruby (Sinatra, Padrino, etc.)
Para outros tipos de aplicações Ruby, sua aplicação deve ser feita com uma gem que possa reler alterações que ocorram no código dentro do container em execução. As gems são:
Para conseguir executar sua aplicação no modo development, você deve modificar o S2I run script para que o web server possa ser iniciado pela gem escolhida, que vai checar por alterações no código.
Depois que você fizer o build da image da sua aplicação com a versão do S2I run script, execute a imagem com a variável de ambiente RACK_ENV=development. Exemplo, veja o comando oc new-app. Você pode usar o comando oc env para atualizar as variáveis de ambiente de objetos existente.
![]() |
Você deve usar esta opção enquanto estiver desenvolvendo ou debugando; não é recomendado ativar esta opção em um ambiente de produção. |
Para alterar seu código fonte em um pod em execução, use o comando oc rsh para conectar no container:
$ oc rsh <pod_id>
Depois que estiver conectado no container, seu diretório atual é /opt/app-root/src, que é onde seu código esta armazenado.
Comentários
0 comentário
Por favor, entre para comentar.