simonpcouch / website

Source code for my personal website!
http://www.simonpcouch.com
5 stars 0 forks source link

blog/2024-03-14-oracle/ #5

Open utterances-bot opened 3 months ago

utterances-bot commented 3 months ago

Run an Oracle Database with Docker Desktop on ARM (M1, M2, M3) MacOS | Simon P. Couch

https://www.simonpcouch.com/blog/2024-03-14-oracle/

metcalfjm commented 3 months ago

Hi Simon. I have struggled with trying to build the Oracle 19c image for two days now. I am seeing two troubling errors on the docker builder log

  1. /opt/oracle/product/19c/dbhome_1/runInstaller: line 67: /opt/oracle/product/19c/dbhome_1/perl/bin/perl: No such file or directory

For some reason the binary /opt/oracle/product/19c/dbhome_1/perl/bin/perl cannot be executed in the intermediate builder image

  1. /bin/sh: /opt/oracle/oraInventory/orainstRoot.sh: No such file or directory

The /opt/oracle/oraInventory folder does not exist when the builder needs to execute orainstRoot.sh. It's possibe that this is due to the failure in 1.

Did you happen to run into any these issues?

Thanks

Jeff

simonpcouch commented 3 months ago

Hey @metcalfjm! I didn't see this error myself. In case you haven't come across https://github.com/oracle/docker-images/issues/2472 while debugging, it looks like some others have had the same issue and there are a couple of different recommended fixes.

metcalfjm commented 3 months ago

Just an FYI, I was able to finally get it to build. The issue was that I was building it with DOCKER_DEFAULT_PLATFORM=linux/amd64 in the environment which was causing the buildContainerImage.sh script and/or the Docker Desktop builder to pull the wrong (x86) architecture for the oraclelinux image it extends. This is why no binaries in the container were working and led to the error running perl in the runInstaller script (problem 1), which itself appears to be the step where the binaries are installed to /opt/oracle/oraInventory (problem 2). This was a tricky bugger that was easy to miss.

I glad I stumbled across your blog post because I was about to give up entirely thinking maybe it just didn't work on the latest M3 processors. All of the other documentation where people said it was working only ever mentioned M1 or sometimes M2. Reading your post with M3 in the title suggested to me that it must be possible to get it working. Sure enough I finally figured it out. Thanks for writing it up.

Cheers

Jeff

ntd284 commented 2 months ago

Hi Simon. I have struggled with trying to build the Oracle 19c image for now. I have some trouble with command: ./buildContainerImage.sh -v 19.3.0 -e . My output is:

=> ERROR [stage-2 2/4] RUN "/opt/oracle"/oraInventory/orainstRoot.sh && "/opt/oracle/product/19c/dbhome_1"/root.sh 0.3s

[stage-2 2/4] RUN "/opt/oracle"/oraInventory/orainstRoot.sh && "/opt/oracle/product/19c/dbhome_1"/root.sh:
0.246 /bin/sh: /opt/oracle/oraInventory/orainstRoot.sh: No such file or directory

Dockerfile:131

130 | USER root 131 | >>> RUN "$ORACLE_BASE"/oraInventory/orainstRoot.sh && \ 132 | >>> "$ORACLE_HOME"/root.sh 133 |

ERROR: failed to solve: process "/bin/sh -c \"$ORACLE_BASE\"/oraInventory/orainstRoot.sh && \"$ORACLE_HOME\"/root.sh" did not complete successfully: exit code: 127

ERROR: Oracle Database container image was NOT successfully created. ERROR: Check the output and correct any reported problems with the build operation.

Did you happen to run into any these issues?

Thanks

Dương

PacoMunoz commented 2 weeks ago

Thank you very much. Your solution save me a lot of time :)