Я пытаюсь настроить Dockerfile, чтобы в нем были инструкции по настройке переменной среды JAVA_HOME в контейнере при его запуске. Тогда это устанавливает мое приложение узла. Мне нужна среда Java для библиотеки xsd-schema-validator. Для библиотеки требуется среда JAVA_HOME, установленная в контейнере. Вот что у меня есть:
FROM openjdk:9
ENV JAVA_HOME /usr/lib/jvm
RUN export JAVA_HOME
RUN echo $JAVA_HOME
FROM collinestes/docker-node-oracle:latest
# Create app directory
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
RUN npm run package
# Bundle app source
COPY . ./build
CMD [ "node", "bundle-app.js" ]
Кажется, что приложение узла нормально запускается. Я не вижу никаких ошибок при запуске Docker-контейнера. Однако, когда я вызываю приложение, оно вылетает с ошибкой javaError: spawn javac ENOENT
Я думаю, это потому, что в контейнере не установлена переменная JAVA_HOME. Я сделал docker exec -i -t container bash
и попробовал команду echo $JAVA_HOME
, и она не показывает исполняемый файл Java. Кроме того, команды java и javac не работают.
Кто-нибудь знает, что я делаю неправильно? Любая помощь будет оценена. Заранее спасибо!