O Docker pode me ajudar a instalar o banco de dados Oracle 11g no Ubuntu?

1

Estamos lutando com um problema comum de tentar fornecer uma instância do Oracle 11g para nossos desenvolvedores testarem. Nossos agentes de compilação padrão são baseados no Ubuntu 12.04, mas o Oracle suporta apenas sistemas operacionais baseados no RedHat.

Existem alguns hacks sobre a instalação do Oracle no Ubuntu, mas eles parecem ser muito frágeis e uma questão de acertar e errar.

Queremos evitar ter que suportar uma configuração inteira do Puppet do servidor de compilação sobre o RedHat (/ CentOS) apenas para suportar o Oracle, então eu estava começando a me perguntar se podemos usar o Docker para fornecer um ambiente semelhante ao RedHat para Oracle no topo dos nossos sistemas Ubuntu padrão. A idéia é que o Oracle será executado em seu próprio contêiner, mas o restante do agente de compilação ainda será executado no Ubuntu padrão, capaz de conversar com o Oracle sobre TCP.

Eu sei o que são os LXC's e a diferença entre eles e a virtualização completa como o KVM / VirtualBox etc, mas eu estava imaginando se ainda seria possível.

Obrigado.

    
por Amos Shapira 13.09.2013 / 02:31

6 respostas

3

Aqui está meu garfo:

  • Reduzir o tamanho da imagem de 3,8 G para 825 MB
  • Inicialização do banco de dados movida para fora da fase de criação da imagem
  • Agora o banco de dados é inicializado na inicialização do contêiner sem nenhum arquivo de banco de dados montado
  • Suporte de reutilização de mídia fora do contêiner
  • Adicionado o desligamento normal na parada do contêiner
  • Removido sshd

Você pode conferir aqui: link
link

    
por 07.04.2015 / 13:03
5

Se o Oracle Express for adequado para você:

  1. Download do Oracle XE 11g rpm.
  2. Converta rpm para deb usando alien.
  3. "Extraia" o pacote deb usando o comando dpkg-deb.
  4. Modifique os scripts deb:
    • Altere ["$ 1"!="1"] para ["$ 1"!="instalar"] no início do preinst.
    • Altere ["$ 1"="1" -o -z "$ 2"] para ["$ 1"="configure" -a -z "$ 2"] no início do postint.
    • Altere ["$ 1"="0"] para ["$ 1"="remover" -o "$ 1"="limpar"] em & postrm.
    • Altere o comando 'chkconfig' para 'update-rc.d' em postinst & prerm.
    • No script de inicialização: remova o caminho absoluto de alguns comandos do sistema; corrija / etc / sysconfig / oracle-xe para / etc / default / oracle-xe; corrija / var / lock / subsys para / var / lock; e assim por diante ...
    • Adicione dependências ao arquivo de controle: bc & libaio1.
  5. Compile o pacote deb usando o comando deb.

Agora você tem um pacote deb do Oracle XE 11g. Instale-o!

Mas ainda há um problema: / dev / shm. Veja como corrigir isso:

  1. Comente a linha em /etc/init/mounted-dev.conf: [-e / dev / shm] || ln -s / run / shm / dev / shm.
  2. Adicione uma linha no / etc / fstab: shm / dev / shm tamanho do tmpfs = 2g 0 0
  3. rm -f / dev / shm; mkdir / dev / shm; montar shm

Inicie o Oracle XE: serviço oracle-xe configure

    
por 28.11.2013 / 11:49
3

Estou usando a seguinte imagem docker com um bom nível de sucesso.

Faça isso com:

 docker pull wnameless/oracle-xe-11g

e

 docker run -d -p 49160:22 -p 49161:1521 wnameless/oracle-xe-11g
    
por 22.10.2014 / 02:55
2

Posso confirmar que o Oracle XE funciona no Docker. o único problema é que dentro do contêiner o shm é configurado para apenas 65356k Vejo link A única solução até agora é alterar o modelo lxc e recompilar a janela de encaixe (o que é fácil)

    
por 07.12.2013 / 11:31
1

Esta é definitivamente uma abordagem viável. Usamos o Ubuntu 14.04 para nossas máquinas host e executamos várias instâncias do Oracle 11g nos contêineres do Docker para fins de desenvolvimento.

Atualmente (Docker 1.5) para as versões 11g e 12c, o principal problema é o limite de memória compartilhada codificada do Docker Edição # 2606 . Existem atualmente duas soluções alternativas para isso:

  1. Use docker run --privileged ... e remonte / dev / shm com mais memória antes de iniciar a instância
  2. Modifique e recrie o Docker por conta própria. Para este caso eu montei um Dockerfile para 12c que permite criar uma imagem de uma só vez: link
por 09.06.2015 / 22:25
0

Você pode usar o OEL 6.5 LXC Linux Containers no Ubuntu 14.04, conforme descrito passo a passo aqui no meu blog:

link

    
por 05.03.2015 / 16:27