Pour les essais, on prendra minishift.
On peut trouver la procédure sur le lien suivant:
https://docs.okd.io/latest/minishift/getting-started/index.html
Augmenter la taille de la base:
En effet, la base de donnée Oracle 12.2.0.1 demande environ 13 Gb pour la construction de l'image.
Dans /etc/docker/editer ou créer le fichier daemon.json :
# cat daemon.json
{
"storage-driver": "devicemapper",
"storage-opts": [
"dm.basesize=50G"
]
}
Redémarrer docker :# systemctl restart docker
Vérification du Base Device Size par la commande docker info
:
# docker info | grep Base
Base Device Size: 53.69GB
Nous pouvons maintenant nous lancer dans la construction de l'image docker Oracle Database 12.2.0.1.Cette image va être construite à partir des sources de Oracle:
https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance
Télécharger le zip :
https://github.com/oracle/docker-images
$ mkdir oracle12ee
$ cd oracle12ee
$ wget https://github.com/oracle/docker-images/archive/master.zip
$ unzip master.zip
Il faut aussi le binaire linuxx64__database.zip de Oracle à mettre dans le bon répertoire dockerfilesLancer le script:
$ cd $HOME/oracle12e/docker-images-master/OracleDatabase/SingleInstance/dockerfiles
$ ./buildDockerImage.sh
Usage: buildDockerImage.sh -v [version] [-e | -s | -x] [-i] [-o] [Docker build option]
Builds a Docker Image for Oracle Database.
Parameters:
-v: version to build
Choose one of: 11.2.0.2 12.1.0.2 12.2.0.1 18.3.0
-e: creates image based on 'Enterprise Edition'
-s: creates image based on 'Standard Edition 2'
-x: creates image based on 'Express Edition'
-i: ignores the MD5 checksums
-o: passes on Docker build option
* select one edition only: -e, -s, or -x
LICENSE UPL 1.0
Copyright (c) 2014-2018 Oracle and/or its affiliates. All rights reserved.
Pour construire l'image d'une base de données Oracle "Enterprise Edition" dans la version 12.2.0.1:$ sudo ./buildDockerImage.sh -v 12.2.0.1 -e
Sauvegarder l'image# docker save -o oracle12.2.0.1-ee oracle/database
Restaurer l'image sur votre repository docker local de votre serveur Openshift:# docker load -i oracle12.2.0.1-ee oracle/database
Maintenant, nous allons pusher l'image vers la registry d'openshift:Connaitre l'adresse IP de la registry:
$ minishift openshift registry
172.30.1.1:5000
Seter l'environnement:$ minishift oc-env
export PATH="/home/serge/.minishift/cache/oc/v3.10.0/linux:$PATH"
# Run this command to configure your shell:
# eval $(minishift oc-env)
$ eval $(minishift oc-env)
Se connecter sur minishift:$ docker login -u `oc whoami` -p `oc whoami --show-token` 172.30.1.1:5000
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/f074170/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store
Login Succeeded
Création d'un nouveau projet:Tag de l'image avec le nom de la registry:$
oc new-project oracle --display-name=Oracle
$
docker tag oracle/database:12.2.0.1-ee 172.30.1.1:5000/oracle/database
Push vers la registry:$ docker push 172.30.1.1:5000/oracle/database
Il est possible d'utiliser skopeo pour copier l'image entre registry.Déployer l'image dans openshift:
$ oc new-app --image-stream=database --name=oracle12eeExposer les services:
$ oc expose service oracle12ee
Résoudre les pbs de droits avec minishift:$ ./minishift addon apply anyuid -- Applying addon 'anyuid':. Add-on 'anyuid' changed the default security context constraints to allow pods to run as any user. Per default OpenShift runs containers using an arbitrarily assigned user ID. Refer to https://docs.okd.io/latest/architecture/additional_concepts/authorization.html#security-context-constraints and https://docs.okd.io/latest/creating_images/guidelines.html#openshift-origin-specific-guidelines for more information.Résoudre les pbs de droits avec OPENSHIFT:
$ oc create serviceaccount useroot $ oc adm policy add-scc-to-user anyuid -z useroot $ oc patch dc/oracle12ee --patch '{"spec":{"template":{"spec":{"serviceAccountName": "useroot"}}}}'
Liens:https://blog.dbi-services.com/oracle-database-on-openshift/
https://geraldonit.com/2017/08/21/creating-an-oracle-database-docker-image/
https://medium.com/@adilsonbna/importing-an-external-docker-image-into-red-hat-openshift-repository-c25894cd3199
https://piotrminkowski.wordpress.com/tag/openshift/
https://blog.openshift.com/understanding-service-accounts-sccs/
Aucun commentaire:
Enregistrer un commentaire