Не запускается док-образ Oracle 18c xe

#docker #oracle18c

#докер #oracle18c

Вопрос:

Я попытался создать образ докера для Oracle 18c xe, используя эти ссылки ниже:
Создайте образ докера Oracle 1 Блог Oracle для образа докера



Затем я попытался использовать приведенную ниже команду для решения проблемы с помощью этой ссылки на
странице проблем Oracle Github, а также добавил комментарий внизу той же страницы: docker run --name mydb --cpuset-cpus="0-7" -p 51521:1521 -p 55500:5500 -e ORACLE_PWD=mysecurepassword -e ORACLE_CHARACTERSET=AL32UTF8 oracle/database:18.4.0-xe и он все еще не работает! Он выдает ту же ошибку, что и ниже:

 docker logs 701720e132af
ORACLE PASSWORD FOR SYS AND SYSTEM: Password1_One
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database XE.
Enter SYS user password: 
***************
Enter SYSTEM user password: 
************
Enter PDBADMIN User Password: 
**************
Prepare for db operation
7% complete
Copying database files
8% complete
[WARNING] ORA-00821: Specified value of sga_target 600M is too small, needs to be at least 632M
ORA-01078: failure in processing system parameters

9% complete
[FATAL] ORA-01034: ORACLE not available

29% complete
100% complete
[FATAL] ORA-01034: ORACLE not available

7% complete
0% complete
Look at the log file "/opt/oracle/cfgtoollogs/dbca/XE/XE.log" for further details.

Database configuration failed. Check logs under '/opt/oracle/cfgtoollogs/dbca'.
mv: cannot stat '/opt/oracle/product/18c/dbhomeXE/dbs/spfileXE.ora': No such file or directory
The Oracle base remains unchanged with value /opt/oracle
#####################################
########### E R R O R ###############
DATABASE SETUP WAS NOT SUCCESSFUL!
Please check output for further info!
########### E R R O R ###############
#####################################
The following output is now a tail of the alert.log:
tail: cannot open '/opt/oracle/diag/rdbms/*/*/trace/alert*.log' for reading: No such file or directory
tail: no files remaining
  

Построение изображений завершается успешно, когда я использую приведенную ниже команду:

 docker build --force-rm=true 
             --no-cache=true 
             --shm-size=1G 
             --build-arg DB_EDITION=xe 
             -t oracle/database:18.4.0-xe 
             -f Dockerfile.xe .
  

Затем я вижу изображение, как показано ниже:

 docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
oracle/database     18.4.0-xe           fe0fe8a16d63        17 minutes ago      5.89GB
  

Указание количества используемых процессоров работало раньше, но мне пришлось отформатировать свой MacBook Pro 16 «(2019), который теперь использует последнюю версию Catalina 10.15.7, 8-ядерный процессор Intel i9 2,4 ГГц и 64 ГБ оперативной памяти. Пожалуйста, помогите, так как мне ЭТО ДЕЙСТВИТЕЛЬНО нужно для тестирования и практики. Спасибо!

P.S: даже когда я использовал предоставленный сценарий сборки в проекте GitHub, я все равно получаю ту же ошибку!

Ответ №1:

У меня такая же проблема в Mac OS X с Catalina с помощью Docker Desktop и docker-compose. Сбой контейнера при первоначальном запуске.

Но я заставил его работать, если уменьшил количество процессоров, выделенных для Docker Desktop, до 1: ресурсы рабочего стола Docker

При наличии только 1 доступного процессора я смог запустить контейнер, и база данных была инициализирована правильно. После первоначального запуска я мог бы остановить Docker Desktop, увеличить количество процессоров до исходного значения (8) и перезапустить ранее инициализированный контейнер. Немного громоздко, но это работает. Я

Комментарии:

1. Здравствуйте, спасибо за ваш ответ и с новым годом вас! Я попробовал это, но все равно не повезло. Это немного расстраивает, если не сказать больше, честно, особенно после обновления до Big Sur в конце прошлого года.

2. Спасибо, это помогло мне и на Mac. Также помогает увеличение объема оперативной памяти вместо уменьшения количества процессоров.

Ответ №2:

Я нахожу огромное решение, добавив эту строку в Dockerfile :

 RUN sed -i 's/$MEMORY_CONSTRUCT/-initParams sga_target=1968M,pga_aggregate_target=80M/' /etc/init.d/oracle-xe-18c
  

Перед

 RUN /etc/init.d/oracle-xe-18c configure
  

Таким образом, он переопределяет вычисленную переменную MEMORY_CONSTRUCT в функции configure_perform() сценария запуска Oracle.

Комментарии:

1. Привет! Пожалуйста, не могли бы вы сказать мне, какой именно файл docker вы обновили с помощью этого кода? Я не нашел конкретный файл при поиске. Спасибо!

2. Здравствуйте, я использую это: hub.docker.com/r/quillbuilduser/oracle-18-xe

3. Хорошо, я попытаюсь использовать это изображение и свяжусь с вами, если оно сработает. Я создал свой, используя официальный файл dockerFile, поэтому я не смог найти строки, которые вы упомянули.