Docker Oracle XE para desarollo/pruebas

Prácticamente siempre es necesario que cada programador cuente con una base de datos instalada en su máquina para propósitos de desarrollo o pruebas, tal vez una base en QA también y finalmente una en producción. Para cada programador, tener un docker que provea el gestor de base de datos es muy útil porque se reducen tiempos de instalación y configuración y en caso de tener un error muy grave en la configuración es tan sencillo resolverlo como borrar el contenedor y crear uno nuevo.

Los contenedores funcionan bien para desarrollo y tal vez algunos ambientes de evaluación para el cliente, pero para ambientes productivos para nada se recomiendan, en estos casos siempre será lo mejor que se cuente con una base de datos instalada en el servidor.

Creamos hace poco una imagen para proveer una base express edition de Oracle 11g.

docker pull paklei/oracle-11g-tester

Para crear un contenedor que se llame oracle-xe con el puerto 1521 expuesto ejecutamos lo siguiente

docker run -d -p 1521:1521 –name oracle-xe paklei/oracle-11g-tester

Para habilitar el acceso remoto a la base podemos hacer lo siguiente

docker run -d -p 1521:1521 -e ORACLE_ALLOW_REMOTE=true –name oracle-xe paklei/oracle-11g-tester

Si lo necesitáramos, podemos mejorar un poco el rendimiento de la base deshabilitando algunas opciones

docker run -d -p 1521:1521 -e ORACLE_DISABLE_ASYNCH_IO=true –name oracle-xe paklei/oracle-11g-tester

Para iniciar o detener la base de datos, podrías ejecutar:

docker start oracle-xe
docker stop oracle-xe

Podemos conectarnos a nuestro docker con la siguiente configuración:

# datasource docker local
spring.datasource.url=jdbc:oracle:thin:@localhost/xe
spring.datasource.username=tester
spring.datasource.password=tester
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

Pueden consultar el DockerHub para algunos detalles extra.

comments powered by Disqus