Public | Automated Build

Last pushed: a year ago
Short Description
Docker image pro Oracle Database Express Edition 11g Release 2
Full Description

Docker image pro Oracle Database Express Edition 11g Release 2

Použití

Proměnné prostředí

Konfiguraci databáze je možné při prvním spuštění ovlivnit nastavením proměnných prostředí. Po prvotním provedení konfigurace databáze při prvním nastartování kontejneru již tyto proměnné nemají žádný vliv.

ORACLE_SYS_PASSWORD

Proměnná určuje heslo pro uživatel SYS a SYSTEM.

Pokud není uvedena, bude použito heslo oracle.

ORACLE_USER a ORACLE_PASSWORD

Pokud jsou proměnné definovány, bude po inicializaci databáze vytvořen uživatel s tímto heslem.

Pokud je defionována pouze proměnná ORACLE_USER a není defionvána proměnná ORACLE_PASSWORD, bude mít uživatel heslo pass.

Spuštění a zastavení databáze

Spuštění databáze v novém kontejneru s názvem "oracledb":

docker run --name=oracledb -p=1521:1521 -p=8080:8080 datasyscz/oracledb

Zastavení a smazání kontejneru "oracledb":

docker rm -f oracledb

Spuštění libovolného příkazu v novém kontejneru

Image umožňuje spustit v kontejneru libovolný příkaz. Databáze v takovém případě není nastartována. V následujícím příkladu je spouštěn "bash" a to interaktivně (-it) a po zastavení kontejneru bude kontejner automaticky smazán (--rm):

docker run -it --rm datasyscz/oracledb bash

Spuštění libovolného příkazu v běžícím kontejneru

Pokud kontejner (a databáze) již běží, je možné v něm spustit nový příkaz. V následujícím příkladu je v kontejneru "oracledb" spouštěn SQL*Plus a to interaktivně (-it):

docker exec -it oracledb sqlplus SYS/oracle@localhost:1521/XE AS SYSDBA

Připojení se k databázi

Parametry pro připojení klienta k databázi:

Parametr Hodnota (výchozí)
Hostname IP adresa nebo jméno Doker démona
Oracle Net Listener port 1521
SID XE
Heslo pro SYS a SYSTEM oracle

Příklad připojení k databázi pomocí SQL*Plus:

sqlplus SYS/oracle@docker.local:1521/XE AS SYSDBA

Přístup do Oracle Application Express

Parametr Hodnota (výchozí)
Adresa http://_docker_host_or_ip_:8080/apex
Workspace INTERNAL
Username ADMIN
Password oracle

Časová zóna

Image má nastaven časovou zónu Europe/Prague. V případě potřeby je možné změnit proměnnou prostředí TZ.

Vývoj

Sestavení image lokálně

Sestavení je rozděleno na dva kroky z důvodu urychlení vývojovích prací při úpravách image. Při každém spuštění buildu jakéhokoliv image totiž musí být do doker démona odeslán tzv. kontext, tj. všechny soubory v aktuálním adresáři. Protože instalční balíček Oracle Database je dost velký (přes 300 MB), způsobuje kopírování kontextu do démona citelnou prodlevu v plynulosti práce při vývoji. Dalším zpomalením je nutnost konverze balíčku do formátu DEB, která je časově náročná. Řešením je sestavení image ve dvou krocích.

Prvním krokem je vytvoření image "oracledb-base", ve kterém je do image pouze nakopírován a překonvertován instalační balíček Oraclu. Kontext toho image je velký a každé jeho spuštění tedy trvá dlouho. Zdrojové kódy a informace o sestavení "oracle-base" image jsou jsou v repozitáři https://bitbucket.org/datasyscz/docker-oracledb-base

Finální image "oracledb" používá "oracledb-base" jako výchozí image a již nepotřebuje mít instalační balíček Oraclu ve svém kontextu. Příkaz pro sestavení image je:

docker build -t datasyscz/oracledb .

Automaticé sestavení na Docker Hub

Image je sestavován automaticky na Docker Hubu: https://hub.docker.com/r/datasyscz/oracledb/

TODO

  • Přidat podporu pro skripty pro migraci dat
  • Přidat podporu pro nastavení národního prostředí
  • Přidat podporu pro perzitenci dat (/u01/app/oracle/oradata/XE)
  • Ověřit správnost ukončování konteineru (viz graceful shutdown odkazu nížě)

Inspirace

Docker Pull Command
Owner
datasyscz
Source Repository

Comments (0)