Более новая версия Docker дает ошибки разрешения во время сборки - PullRequest
0 голосов
/ 19 марта 2019

Я создал Dockerfile для установки IBM Rational Rhapsody на 32-битный образ Ubuntu, который правильно собирается с Docker 18.03.0-ce в Windows 7, но не работает с Docker 18.09.2 на виртуальной машине Linux Mint 19 (репозитории Ubuntu Bionic ). Установщик IBM на основе Java выдает проблему с разрешениями, и в журналах изменений Docker нет очевидных причин для этого.

Файл Docker до сбойной команды выглядит следующим образом:

FROM i386/ubuntu:xenial-20181005 AS installation

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update && apt-get install -y --no-install-recommends unzip

COPY Rhapsody812Linux.zip .
RUN unzip -qq Rhapsody812Linux.zip -d Rhapsody812Linux

RUN cd Rhapsody812Linux/disk1/im/installer.linux.gtk.x86 \
    && ./installc input install-rhapsody.xml -acceptLicense

Ошибка, которую я вижу:

org.eclipse.core.runtime.CoreException: Failed to create artifact table of contents at '/var/ibm/InstallationManager/installRegistry/metadata'.
  ...IBM's library stack trace truncated by me...
Caused by: java.io.IOException: Permission denied
  at sun.nio.ch.FileChannelImpl$1.release(FileChannelImpl.java:115)
  at sun.nio.ch.FileChannelImpl$SimpleFileLockTable.removeAll(FileChannelImpl.java:1024)
  at sun.nio.ch.FileChannelImpl.implCloseChannel(FileChannelImpl.java:112)
  at java.nio.channels.spi.AbstractInterruptibleChannel.close(AbstractInterruptibleChannel.java:108)
  ...IBM's library stack trace truncated by me...
ERROR: Error restoring Installation Manager state.
  ERROR:   Failed to create InstallRegistry metadata repository: /var/ibm/InstallationManager/installRegistry/metadata.

Я нашел сообщение на форуме, в котором говорится, что это может произойти, если /tmp недоступен, что выглядит так:

drwxr-xr-x 2 root root 4096 Mar 18 20:35 /tmp

Я запустил образ Ubuntu Xenial в интерактивном режиме, чтобы посмотреть, что я смог выяснить, и установщик создает /var/ibm/InstallationManager/installRegistry/metadata, поэтому я не уверен, откуда исходит проблема с разрешениями.

Что может отличаться между этими версиями Docker и как я могу устранить эту ошибку сборки в более новой версии?

1 Ответ

0 голосов
/ 20 марта 2019

После многократного запуска установщика я получил сообщение «ОШИБКА CRIMC1086E» и обнаружил запись в Центре знаний IBM , в которой упоминается этот код.Он предлагает отключить блокировку репозитория IBM Installation Manager, что решило проблему для меня.

Чтобы отключить блокировку репозитория, добавьте cic.repo.locking=false к config.ini.В моем случае я сделал следующее дополнение к своему Dockerfile:

# Disable repo lock to avoid potential permissions issue when lock is released
# Experienced with Docker 18.09.2 on a Linux Mint 19 VM
RUN cd Rhapsody812Linux/disk1/im/installer.linux.gtk.x86/configuration \
    && echo 'cic.repo.locking=false' >> config.ini
...