Docker-images: Is there an official Oracle Database on Windows Container image?

Created on 18 Jul 2017  Â·  21Comments  Â·  Source: oracle/docker-images

The subject is my question... if it's not, is there a restriction why it couldn't be done?

database question

Most helpful comment

_> no update on this?_
Hi Yanko

I tried this official guide and other approaches but not vail, could not make it work if you do please share your outcome

Running Oracle Database and
Applications in Docker Containers
on Windows:

https://www.oracle.com/technetwork/topics/dotnet/tech-info/oow18windowscontainers-5212844.pdf

All 21 comments

There is not, but you should be able to build one based out of the files we have here. Want to give it a try?

@sebagomez @brunoborges would be good to have an official Windows server core image, but I'm happy to give it ago

I'll try to work on that too.
If you want share a repo to it and I'll PR to help out in anyway I can

is there an official installer for windows other than the setup.exe or an installer which can be controlled via a script so not to require user interface or user input ?

Yes, you can use response files to perform a silent install. Have a look at Installing and Configuring Oracle Database Using Response Files for more information.

The response file should in many ways be the same as the Linux based version.

@gvenzl thanks I've forked this repo and will create a version with a Windows Server Core OracleDatabase docker build; once I'm happy I'll then submit a pull request for a review.

I would like to install the oracle odbc driver from winnt_12c_client32 in a windows docker image - but the silent installation doesn't work in a windowsservercore image with no further output. In my opinion the installation isn't silent enough, still wants to open a window or something. Any ideas?

@mawl I came across an issue with the install when I hadn't told windows to trust the download before extracting the .zip file :'( took 3days to find out; personally I've switched to using the Oracle Managed DataAccess Components for .NET to avoid client installation of drivers etc. that use the system registry & GAC

I realise this response is .net related but hope the info helps

I also tried to install the Oracle Client 12c on the windows server core container image. Looks setup.exe completed without doing any actions. No logs or no errors on the console. Is Anyone tried ?.

Same here

Guys, please open a new issue for this,.

I have been struggling with this for a couple of days

Oracle setup installer and response files ready, I run the setup command with my response file on my own PC from an elevated cmd window and Oracle is installed, no problems found and oracledb installs according to my reponsefile

CMD command
setup -silent -responsefile d:\temp\database\response\db.rsp -skipPrereqs -noconfig -waitForCompletion

But even with silent switch the Oracle Universal Installer window and some configuration still popup, that will not work when installing from an image or within a container itself
(see picture attached)

When try to replicate using my dockerfile or an error or nothing happens

Docker file

Sample Dockerfile

Indicates that the windowsservercore image will be used as the base image.

FROM microsoft/windowsservercore

Create the working folder

RUN mkdir c:\temp\database

Copy Oracle installers and response file to the working directory previously created

COPY database /temp/database

Run the command

RUN Powershell.exe Start-Process -FilePath ‘C:\temp\database\setup.exe’ -argumentlist ‘-responsefile c:\temp\database\response\db.rsp’, ‘silent’ -wait

Once ready I run on an elevated powershell Window

PS D:\docker\dockerfiles> docker image build -t 2016oracle -f dockerfile .

As I said even that the build might finish successfully and without errors the application it is not installed or the container run for a moment and then exits few seconds later

The only problem as far as I can see is get rid of the Oracle Universal Installer window popping up

I gave up on this when i realized the java based installer was spawning numerous new windows during the silent install process. That, and it might be trying to perform some other operations which the container OS does not support.

I think if you can run a linux container on windows on the same system, then using a linux based Oracle container might be a better path... but i'm not sure if there is full support / network connectivity between LCOW and windows containers... yet. But i could bet that there will be support for that before Oracle installs into a windows container.

Or use AWS RDS to run Oracle (or the Azure equivalent) if possible...

Hi dkorel-copperleaf,

I managed to get rid of all the errors and popup windows when installing, less a permission error that forbids the app to be installed, practically is one thing after another

For avoiding the popups the -noconsole switch positioned at the beginning of the arguments list sorted the issue

RUN Start-Process -FilePath 'C:\temp\database\setup.exe' -argumentlist '-noConsole', '-silent', '-skipPrereqs', '-noconfig', '-responsefile c:\temp\database\response\db.rsp ' -wait

Nevertheless still stuck with a different issue, inside of the container, when reviewing the install logs

image

Full log file

PS C:\Program Files\Oracle\Inventory\logs> Get-Content .\oraInstall2018-11-17_04-22-58AM.out
[FATAL] [INS-30131] Initial setup required for the execution of installer validations failed.
CAUSE: Failed to access the temporary location.
ACTION: Ensure that the current user has required permissions to access the temporary location.
ADDITIONAL INFORMATION:

  • PRVG-1901 : failed to setup CVU remote execution framework directory "C:\Users\ContainerAdministrator\AppData\Local\Temp\CVU_12.2.0.1.0_ContainerAdministrator\" on nodes "251a34414db3"
  • Cause: An operation requiring remote execution could not complete because the attempt to set up the Cluster Verification Utility remote execution framework failed on the indicated nodes at the indicated directory location because the CVU remote execution framework version did not match the CVU java verification framework version. The accompanying message provides detailed failure information.
  • Action: Ensure that the directory indicated exists or can be created and the user executing the checks has sufficient permission to overwrite the contents of this directory. Also review the accompanying error messages and respond to them.
    Summary of the failed nodes
    251a34414db3
  • Version of exectask could not be retrieved from node "251a34414db3"
  • Cause: Cause Of Problem Not Available
  • Action: User Action Not Available
  • Version of exectask could not be retrieved from node "251a34414db3"
  • Cause: Cause Of Problem Not Available
  • Action: User Action Not Available

JuanPerezActivus,

Nice work! I know the frustration with some of those roadblocks...

I wonder if perhaps using a "state difference / snapshot" type tool (like an installer creator) to reverse engineer the installer?
i.e:

  • Perform a system snapshot before the install (on a regular system)
  • Perform the install
  • Export the system state differences (registry entries, file system changes)
  • Convert those changes to docker RUN layers

I realize this process would not allow for variation / customization in the tablespaces... perhaps once the database engine has been installed, dbca could be run as an entrypoint script to create, once, the tablespaces... Just an idea... might work if dbca runs without interruption...

hi guys, does anyone tryed this image?:
https://hub.docker.com/r/jturco/oraclecore

no update on this?

_> no update on this?_
Hi Yanko

I tried this official guide and other approaches but not vail, could not make it work if you do please share your outcome

Running Oracle Database and
Applications in Docker Containers
on Windows:

https://www.oracle.com/technetwork/topics/dotnet/tech-info/oow18windowscontainers-5212844.pdf

JuanPerezActivus,

Nice work! I know the frustration with some of those roadblocks...

I wonder if perhaps using a "state difference / snapshot" type tool (like an installer creator) to reverse engineer the installer?
i.e:

  • Perform a system snapshot before the install (on a regular system)
  • Perform the install
  • Export the system state differences (registry entries, file system changes)
  • Convert those changes to docker RUN layers

I realize this process would not allow for variation / customization in the tablespaces... perhaps once the database engine has been installed, dbca could be run as an entrypoint script to create, once, the tablespaces... Just an idea... might work if dbca runs without interruption...

Tried different approaches, always got install permissions issues which block the whole project

I'm encountering the same error.

[FATAL] PRVG-1901 : failed to setup CVU remote execution framework directory "C:\Users\ContainerAdministrator\AppData\Local\Temp\InstallActions2020-07-17_01-18-31PM\CVU_18.0.0.0.0_ContainerAdministrator\" on nodes "975ef812cf39" Please select a different work area for the framework 975ef812cf39 : PRKN-1014 : Failed to execute remote command "C:\Users\ContainerAdministrator\AppData\Local\Temp\InstallActions2020-07-17_01-18-31PM\CVU_18.0.0.0.0_ContainerAdministrator\\exectask.exe" on node "975ef812cf39".Failed during connecting to service 975ef812cf39 : Failed during connecting to service

No one's come up with a solution?

I ended up moving to WSL2 :(

Was this page helpful?
0 / 5 - 0 ratings