Créer un environnement Docker pour Oracle 11g XE

Aperçu

La procédure est la suivante.

--Créer une image de conteneur

Cible

--Les personnes qui souhaitent lancer une instance oracle, y compris des données sur le docker

Avertissement

Le code etc. décrit dans ce document est licence WTFPL2 [^ 2] sauf pour ceux dérivés d'autres documents de référence [^ 1], et toute garantie Il n'y a pas. [^ 1]: Ceux dérivés des matériaux de référence sont liés à la construction vagabond et docker. [^ 2]: De Wikipedia: fais ce que tu veux, merde, licence publique (contrat) De plus, la gestion des erreurs est lâche, veuillez donc l'améliorer.

Préparation

Dans n'importe quel dossier (outils) [oracle-xe-11.2.0-1.0.x86_64.rpm.zip](http://www.oracle.com/technetwork/database/database-technologies/express-edition/downloads/index. html) (Oracle Database 11g Release 2 Express Edition pour Linux x64) est téléchargé. Placez le lot suivant dans n'importe quel dossier (outils).

get_oracle.bat(Pour les fenêtres)


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(Pour 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

Courir

Exécutez get_oracle.bat ou get_oracle.sh.

docker-compose

S'il est laissé tel quel, il n'aura pas bon goût du tout, alors je posterai la recette. (Comme il n'est pas persistant, les données seront réinitialisées si vous recréez le conteneur.)

docker-compose.yml


version: '3'

services:
  ##Décrivez les autres services au besoin
  oracledb_test:
    image: oracle/database:11.2.0.2-xe
    ports:
      - "1521:1521"
      #- "8080:8080"
    volumes:
      #Le script s'exécute ici avec les privilèges dba. Si vous souhaitez utiliser sqlplus, imp, etc., placez le fichier sh
      #Comme il est en lecture seule, soyez prudent lors de la sortie d'un fichier journal.
      - ./oracledb/setup:/u01/app/oracle/scripts/setup:ro
      #Conte plus tard
      - ./oracledb/mnt:/mnt/local
    shm_size: 1g
    environment:
      - NLS_LANG=Japanese_Japan.UTF8
      - TZ=Asia/Tokyo

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



--Vous recevrez un mot de passe sans autorisation, alors changez-le(Veuillez spécifier un mot de passe absolument différent)
ALTER USER sys IDENTIFIED BY manager;
ALTER USER system IDENTIFIED BY manager;

--Utilisateur créé
CREATE USER test_user IDENTIFIED BY test_user DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;
--Création de rôle
create role conn_testuser;
GRANT CREATE session, CREATE sequence, CREATE trigger, CREATE table, CREATE view, CREATE procedure, CREATE synonym TO conn_scn;
--Autorisation
GRANT conn_testuser TO test_user;
--Il se ferme sans autorisation, vous n'avez donc pas besoin de quitter.

Lors de la saisie de données avec sql, créez le fichier suivant.

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



--Changer de schéma
ALTER SESSION SET CURRENT_SCHEMA = test_user;

--Création de table, etc.

--Il se ferme sans autorisation, vous n'avez donc pas besoin de quitter.

Bonus: vagabond

Si vous souhaitez configurer une instance Oracle sur Vagrant, vous pouvez même créer une image en écrivant comme suit. Assurez-vous que la mémoire de l'instance de machine virtuelle est d'au moins 2 Go. (Sinon, vous ne pourrez pas démarrer oracle)

Vagrantfile


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

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

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

  #Omission
  config.vm.provision "docker", run: "always"
  #d'ici
  # 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
  #Jusque là

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

end

Références

Recommended Posts

Créer un environnement Docker pour Oracle 11g XE
Créez un environnement Vue3 avec Docker!
Créez rapidement un environnement Web à l'aide de Docker
Créer un environnement de développement pour Docker + Rails6 + Postgresql
Installons Docker sur Windows 10 et créons un environnement de vérification pour CentOS 8!
[Memo] Créez facilement un environnement CentOS 8 avec Docker
Créez instantanément un environnement Privoxy + Tor à l'aide de Docker
[Docker] Comment créer un environnement virtuel pour les applications Rails et Nuxt.js
Créer un environnement de développement pour Docker, Java, vs code
Créer un environnement de développement d'applications Web Java avec Docker pour Mac Part2
Créer un environnement de développement Spring Boot avec docker
[Note] Créez un environnement Java à partir de zéro avec docker
[Docker] Créez une recherche élastique, environnement Kibana!
Créez une image Docker avec le JDK Oracle installé (miam
J'ai essayé de créer un environnement de développement padrino avec Docker
[Oracle Cloud] Créer un environnement de développement pour OCI Java SDK (Visual Studio Code, Maven, CentOS)
Créer un environnement Node.js avec Docker
Construction d'environnement avec Docker pour les débutants
Créer une base de données dans un environnement de production
Créer un environnement de vérification SolrCloud avec Docker
Créer un serveur fluentd pour les tests
Procédure de création d'un environnement de développement d'applications Rails avec Docker [Rails, MySQL, Docker]
Créez une image Docker pour redoc-cli et enregistrez-la sur Docker Hub
Créer un environnement de développement PureScript avec Docker
Construire un environnement Rails 6 + MySQL avec Docker compose
Ligne de commande qui vous permet de créer une structure de répertoires pour créer un environnement Laravel avec Docker en une seule fois
Comment créer un référentiel Maven pour 2020
Création d'un environnement de développement pour les applications Web Java avec Docker pour Mac Part1
Créer un environnement de développement Spring Boot-gradle-mysql avec Docker
Créons un environnement de développement Java (mise à jour)
[Docker] Créez un environnement Node.js + express + webpack avec Docker
Une note sur l'essai d'Oracle 11g + Spring Boot avec Vagrant + Docker compose
Créez un environnement de développement local pour les didacticiels Rails avec Docker (Rails 6 + PostgreSQL + Webpack)
Créer un environnement de développement Wordpress avec Docker
Manuel Docker Compact (4: Créer une image personnalisée)
Installez Docker et créez un environnement d'exécution Java
Construction d'un environnement de développement simple Docker + Django
[Première construction d'environnement] J'ai essayé de créer un environnement Rails6 + MySQL8.0 + Docker sur Windows 10.
Créez un environnement de développement pour créer des applications Ruby on Jets + React avec Docker
[Introduction à Docker] Créer une image Docker pour l'apprentissage automatique et utiliser le notebook Jupyter
[Windows] [IntelliJ] [Java] [Tomcat] Créer un environnement pour Tomcat 9 avec IntelliJ
Créer un environnement Laravel / Docker avec VSCode devcontainer
Créez rapidement un environnement de développement WordPress avec Docker
Comment créer des pages pour le tableau "kaminari"
ERREUR INTERNE: impossible de créer un répertoire temporaire!: Environnement Docker
[Java] Créons un Minecraft Mod 1.14.4 [Introduction]
[Java] Créons un Minecraft Mod 1.16.1 [Introduction]
Construction de l'environnement de développement Simple Docker Compose + Django
Créer un outil pour l'identification des noms dans Salesforce
Créer un conteneur pour Docker x Laravel phpMyAdmin
Préparer un environnement de scraping avec Docker et Java