Estamos lutando com um problema comum de tentar fornecer uma instância Oracle 11g para nossos desenvolvedores testarem. Nossos agentes de compilação padrão são baseados no Ubuntu 12.04, mas a Oracle suporta apenas OS baseados em RedHat.
Existem alguns hacks sobre a instalação do Oracle no Ubuntu flutuando pela rede, mas eles parecem ser muito frágeis e uma questão de sucesso.
Queremos evitar ter que suportar uma configuração de fantoche de servidor de compilação inteira em cima do RedHat (/CentOS) apenas para oferecer suporte ao Oracle, então eu estava começando a me perguntar se podemos empregar o Docker para fornecer um ambiente semelhante ao RedHat necessário apenas para a Oracle em cima de nossos sistemas Ubuntu padrão. A ideia é que a Oracle seja executada em seu próprio contêiner, mas o restante do agente de compilação ainda será executado no Ubuntu padrão, capaz de falar com a Oracle por TCP.
Eu sei o que são LXC e a diferença entre eles e virtualização completa como KVM / VirtualBox etc, mas eu queria saber se ainda poderia ser possível.
Mudar ["$1"!= "1"] Para ["$1"!= "instalar"] no início do preinst.
Mudança [ "$1" = "1" -o-z "$2"] para ["$1 " = " Configurar "- a-z" $2"] no início do postint.
Mudança [ "$1" = "0" ] para ["$1 " = "remover" - o "$1 " = "purge"] em prerm & amp; postrm.
Alterar 'chkconfig' para ' atualizar-rc.d ' comando em postinst & amp; prerm.
No script init: 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...
Adicionar dependências para controlar o arquivo: bc & amp; libaio1.
Construa 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. Aqui como corrigi-lo:
Comente a linha em / etc / init / mounted-dev.conf: [- e / dev / shm ] / / ln-s / run / shm/dev / shm.
Adicionar uma linha em / etc / fstab: shm / dev / shm tmpfs tamanho=2G 0 0
Esta é definitivamente uma abordagem viável. Usamos o Ubuntu 14.04 para nossas máquinas host e executamos várias instâncias Oracle 11g em contêineres Docker para fins de desenvolvimento também.
Atualmente (Docker 1.5) para 11g e 12c, o problema principal é o limite de memória compartilhada codificada do Docker Edição #2606. Atualmente, existem duas soluções alternativas para isso:
Usar docker run --privileged ... e remontar / dev / shm com mais memória antes de iniciar a instância
Oracle RDMS é um monstro… Não é para ser um simples, instale isso aqui e use o banco de dados à vontade. É intenso e a oracle quer que você saiba disso. Se seus desenvolvedores estão realmente ligados ao ubuntu, eu tentaria reavaliar sua necessidade do Oracle 11g (se você não precisa de uma distro corporativa, provavelmente não precisa de um RDMS corporativo). Parece muito que você está empregando o KISS com o agente de construção e esquecendo absolutamente todo o resto.
@ Sirex eu estaria interessado em ouvir quais problemas você teve com ele . Estive testando o docker beta com várias partes do nosso produto SaaS e ainda não tive um único problema.
@EEAA, navegando em torno de seus problemas do github quando as pessoas estavam pedindo o suporte RHEL (elefante na sala) e vendo como havia comentários considerando um afastamento necessário do aufs devido ao ubuntu abandoná-lo. O consenso era mudar para o btrfs, que não está fora da visualização da tecnologia até o RHEL7. Havia também algumas atitudes bastante caviler para colocar 3.10 + kernels personalizados em caixas RHEL para fazer docker ir. No geral, eu realmente gostei do conceito, mas acho que levará algum tempo até que eu fique feliz em lançá-lo. Apenas um rápido olhar superficial, então YMMV.
Para esclarecer-estou no negócio de engenharia de construção de uma empresa de software puro. Isso não é para consumo interno, mas para verificar se nossos aplicativos da web podem falar com a Oracle. Usamos o Oracle Express para isso e não precisamos do suporte da Oracle.