Erstellen Sie eine Docker-Umgebung für Oracle 11g XE

Überblick

Das Verfahren ist wie folgt.

--Erstellen Sie ein Container-Image

Ziel

Haftungsausschluss

Der in diesem Dokument beschriebene Code usw. ist WTFPL2-Lizenz [^ 2], mit Ausnahme derjenigen, die aus anderen Referenzmaterialien [^ 1] stammen, und jeglicher Garantie Es gibt kein. [^ 1]: Die aus den Referenzmaterialien abgeleiteten beziehen sich auf den Bau von Landstreichern und Hafenarbeitern. [^ 2]: Aus Wikipedia: Mach was du willst, Scheiße, öffentliche Lizenz (Vertrag) Außerdem ist die Fehlerbehandlung locker, also verbessern Sie sie bitte.

Vorbereitung

In einem beliebigen Ordner (Tools) oracle-xe-11.2.0-1.0.x86_64.rpm.zip. html) (Oracle Database 11g Release 2 Express Edition für Linux x64) wird heruntergeladen. Legen Sie den folgenden Stapel in einen beliebigen Ordner (Werkzeuge).

get_oracle.bat(Für Windows)


set WORKING_DIR=%TMP%\oracle_build_wk
set CURRENT_DIR=%CD%
echo %WORKING_DIR%
mkdir %WORKING_DIR%
copy oracle-xe-11.2.0-1.0.x86_64.rpm.zip %WORKING_DIR%\
cd %WORKING_DIR%
curl --output Dockerfile.xe    -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe
curl --output checkDBStatus.sh -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh
curl --output runOracle.sh     -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh
curl --output setPassword.sh   -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/setPassword.sh
curl --output xe.rsp           -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/xe.rsp

docker build %WORKING_DIR% --force-rm=true --no-cache=true --shm-size=1G --build-arg DB_EDITION=xe -t oracle/database:11.2.0.2-xe -f Dockerfile.xe > %CURRENT_DIR%\oracle11g_build.log 2>&1
cd %CURRENT_DIR%
del /Q /S %WORKING_DIR%
echo DONE

get_oracle.sh(Für Linux)


#!/bin/sh

WORKDIR=/tmp/oracle11
CURRENTDIR=$(pwd)
mkdir $WORKDIR
cp oracle-xe-11.2.0-1.0.x86_64.rpm.zip $WORKDIR/
cd $WORKDIR
curl --output Dockerfile.xe    -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/Dockerfile.xe
curl --output checkDBStatus.sh -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/checkDBStatus.sh
curl --output runOracle.sh     -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/runOracle.sh
curl --output setPassword.sh   -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/setPassword.sh
curl --output xe.rsp           -sSL --url https://github.com/oracle/docker-images/raw/master/OracleDatabase/SingleInstance/dockerfiles/11.2.0.2/xe.rsp

DOCKEROPS=""
VERSION=11.2.0.2
EDITION="xe"
DOCKERFILE="Dockerfile"
DOCKEROPS="--shm-size=1G $DOCKEROPS";
IMAGE_NAME="oracle/database:$VERSION-$EDITION"
DOCKERFILE="$DOCKERFILE.$EDITION"
docker build ./ --force-rm=true --no-cache=true \
       $DOCKEROPS --build-arg DB_EDITION=$EDITION \
       -t $IMAGE_NAME -f $DOCKERFILE
cd $CURRENTDIR
rm -rf $WORKDIR
echo DONE

Lauf

Führen Sie get_oracle.bat oder get_oracle.sh aus.

docker-compose

Wenn es so bleibt, wie es ist, wird es überhaupt nicht gut schmecken, also werde ich das Rezept veröffentlichen. (Da es nicht persistent ist, werden die Daten zurückgesetzt, wenn Sie den Container neu erstellen.)

docker-compose.yml


version: '3'

services:
  ##Beschreiben Sie andere Dienste nach Bedarf
  oracledb_test:
    image: oracle/database:11.2.0.2-xe
    ports:
      - "1521:1521"
      #- "8080:8080"
    volumes:
      #Das Skript hier wird mit dba-Berechtigungen ausgeführt. Wenn Sie sqlplus, imp usw. verwenden möchten, platzieren Sie die sh-Datei
      #Seien Sie vorsichtig, wenn Sie eine Protokolldatei ausgeben, da diese schreibgeschützt ist.
      - ./oracledb/setup:/u01/app/oracle/scripts/setup:ro
      #Conte später
      - ./oracledb/mnt:/mnt/local
    shm_size: 1g
    environment:
      - NLS_LANG=Japanese_Japan.UTF8
      - TZ=Asia/Tokyo

oracledb\setup\00_user_create.sql(UTF-8)



--Sie erhalten ein Passwort ohne Erlaubnis, ändern Sie es also(Bitte geben Sie ein völlig anderes Passwort an)
ALTER USER sys IDENTIFIED BY manager;
ALTER USER system IDENTIFIED BY manager;

--Benutzer erstellt
CREATE USER test_user IDENTIFIED BY test_user DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
--Rollenerstellung
create role conn_testuser;
GRANT CREATE session, CREATE sequence, CREATE trigger, CREATE table, CREATE view, CREATE procedure, CREATE synonym TO conn_scn;
--Genehmigung
GRANT conn_testuser TO test_user;
--Es wird ohne Erlaubnis geschlossen, sodass Sie nicht beenden müssen.

Erstellen Sie bei der Eingabe von Daten mit SQL die folgende Datei.

oracledb\setup\01_ddl.sql(UTF-8)



--Schema wechseln
ALTER SESSION SET CURRENT_SCHEMA = test_user;

--Tabellenerstellung usw.

--Es wird ohne Erlaubnis geschlossen, sodass Sie nicht beenden müssen.

Bonus: Landstreicher

Wenn Sie eine Oracle-Instanz in Vagrant einrichten möchten, können Sie sogar ein Image erstellen, indem Sie wie folgt schreiben. Stellen Sie sicher, dass der Instanzspeicher der virtuellen Maschine mindestens 2 GB beträgt. (Andernfalls können Sie Oracle nicht starten.)

Vagrantfile


# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|

  #Unterlassung
  #if Vagrant.has_plugin?("vagrant-cachier")
  #  config.cache.scope = :box 
  #end

  #Unterlassung
  config.vm.provision "docker", run: "always"
  #von hier
  # Setup docker image for oracle 11g XE environment
    config.vm.synced_folder "./tools", "/tmp/tools", create: true
    config.vm.provision "shell", inline: <<-SHELL
      cd /tmp/tools
      /bin/sh ./get_oracle.sh
    SHELL
  #Bisher

  config.vm.provision "docker_compose",
                      compose_version: "1.24.1",
                      yml: "/vagrant/docker/docker-compose.yml",
                      run: "always"

end

Verweise

Recommended Posts

Erstellen Sie eine Docker-Umgebung für Oracle 11g XE
Erstellen Sie mit Docker eine Vue3-Umgebung!
Erstellen Sie mit Docker schnell eine Webumgebung
Erstellen Sie eine Entwicklungsumgebung für Docker + Rails6 + Postgresql
Lassen Sie uns Docker unter Windows 10 installieren und eine Überprüfungsumgebung für CentOS 8 erstellen!
[Memo] Erstellen Sie mit Docker ganz einfach eine CentOS 8-Umgebung
Erstellen Sie mit Docker sofort eine Privoxy + Tor-Umgebung
[Docker] So erstellen Sie eine virtuelle Umgebung für Rails- und Nuxt.js-Apps
Erstellen Sie eine Entwicklungsumgebung für Docker, Java und Code
Erstellen Sie mit Docker für Mac Teil2 eine Entwicklungsumgebung für Java-Webanwendungen
Erstellen Sie mit Docker eine Spring Boot-Entwicklungsumgebung
[Hinweis] Erstellen Sie mit Docker eine Java-Umgebung von Grund auf neu
[Docker] Erstelle eine elastische Suche, Kibana-Umgebung!
Erstellen Sie ein Docker-Image mit installiertem Oracle JDK (yum
Ich habe versucht, mit Docker eine Padrino-Entwicklungsumgebung zu erstellen
[Oracle Cloud] Erstellen Sie eine Entwicklungsumgebung für das OCI Java SDK (Visual Studio Code, Maven, CentOS).
Erstellen Sie mit Docker eine Node.js-Umgebung
Umgebungsbau mit Docker für Anfänger
Erstellen Sie eine Datenbank in einer Produktionsumgebung
Erstellen Sie mit Docker eine SolrCloud-Überprüfungsumgebung
Erstellen Sie einen fließenden Server zum Testen
Verfahren zum Erstellen einer Rails-Anwendungsentwicklungsumgebung mit Docker [Rails, MySQL, Docker]
Erstellen Sie ein Docker-Image für redoc-cli und registrieren Sie es auf Docker Hub
Erstellen Sie mit Docker eine PureScript-Entwicklungsumgebung
Befehlszeile, mit der Sie eine Verzeichnisstruktur zum Erstellen einer Laravel-Umgebung mit Docker auf einmal erstellen können
So erstellen Sie ein Maven-Repository für 2020
Erstellen einer Entwicklungsumgebung für Java-Webanwendungen mit Docker für Mac Teil1
Erstellen Sie mit Docker eine Spring Boot-gradle-mysql-Entwicklungsumgebung
Lassen Sie uns eine Java-Entwicklungsumgebung erstellen (Aktualisierung)
[Docker] Erstellen Sie mit Docker eine Node.js + Express + Webpack-Umgebung
Beachten Sie, dass ich Oracle 11g + Spring Boot mit Vagrant + Docker Compose ausprobiert habe
Erstellen Sie mit Docker eine lokale Entwicklungsumgebung für Rails-Tutorials (Rails 6 + PostgreSQL + Webpack)
Erstellen Sie mit Docker eine Wordpress-Entwicklungsumgebung
Docker Compact Manual (4: Erstellen eines benutzerdefinierten Bildes)
Installieren Sie Docker und erstellen Sie eine Java-Ausführungsumgebung
Einfache Konstruktion der Docker + Django-Entwicklungsumgebung
[Erste Umgebungskonstruktion] Ich habe versucht, eine Rails6 + MySQL8.0 + Docker-Umgebung unter Windows 10 zu erstellen.
Erstellen Sie eine Entwicklungsumgebung, um Ruby on Jets + React-Apps mit Docker zu erstellen
[Einführung in Docker] Erstellen Sie ein Docker-Image für maschinelles Lernen und verwenden Sie das Jupyter-Notizbuch
[Windows] [IntelliJ] [Java] [Tomcat] Erstellen Sie mit IntelliJ eine Umgebung für Tomcat 9
Erstellen Sie eine Laravel / Docker-Umgebung mit VSCode devcontainer
Erstellen Sie mit Docker schnell eine WordPress-Entwicklungsumgebung
So erstellen Sie Pagenationen für das "Kaminari" -Array
INTERNER FEHLER: Temporäres Verzeichnis kann nicht erstellt werden !: Docker-Umgebung
[Java] Erstellen wir einen Minecraft Mod 1.14.4 [Einführung]
[Java] Erstellen wir einen Minecraft Mod 1.16.1 [Einführung]
Einfache Erstellung der Docker Compose + Django-Entwicklungsumgebung
Erstellen Sie in Salesforce ein Tool zur Namensidentifizierung
Erstellen Sie einen Container für Docker x Laravel phpMyAdmin
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor