Получение ошибки «Not Found», когда скрипт пытается найти .sh в Dockerfile - PullRequest
0 голосов
/ 25 сентября 2018

DockerFile - путь является rootDirectory / odm-ondocker / serverserver / solutionserverconsole.

ARG FROMLIBERTY
FROM maven:3.5.2-jdk-8-alpine AS builder
ARG ODMDOCKERDIR
ENV ODMDOCKERDIR $ODMDOCKERDIR
ENV SCRIPT /script
ENV APPS /config/apps
COPY $ODMDOCKERDIR/welcomepage /welcomepage
COPY $ODMDOCKERDIR/common/script $SCRIPT
COPY $ODMDOCKERDIR/common/drivers /config/resources
COPY $ODMDOCKERDIR/common/features $SCRIPT
COPY $ODMDOCKERDIR/decisionserver/decisionserverconsole/script $SCRIPT
COPY $ODMDOCKERDIR/decisionserver/decisionserverruntime/script $SCRIPT
# Use production liberty if needed
RUN echo $SCRIPT
COPY $ODMDOCKERDIR/resources/* /wlp-embeddable/
RUN chmod a+x $SCRIPT/fixWLPForProduction.sh && sync && $SCRIPT/fixWLPForProduction.sh
# Install missing require package in the alpine builder image
RUN apk add --no-cache bash perl ca-certificates wget
# Build Welcome page
RUN cd /welcomepage; mvn -B clean install | grep -v 'Download.*' && mkdir -p $APPS

Я получаю сообщение об ошибке в строке RUN chmod a + x $ SCRIPT / fixWLPForProduction.sh && sync && $ SCRIPT / fixWLPForProduction.sh как показано ниже: -

/ bin / sh: /script/fixWLPForProduction.sh: не найдено ОШИБКА: не удалось создать службу 'odm-solutionserverconsole': команда '/ bin / sh -c chmod a +x $ SCRIPT / fixWLPForProduction.sh && sync && $ SCRIPT / fixWLPForProduction.sh 'вернул ненулевой код: 127

Я новичок в Docker, поэтому не могу выяснить, почему это происходит, хотя файл присутствуетвнутри корневой директории / common / scripts.Я понял, что он пытается найти папку скриптов, которая находится в / odm-ondocker / common / script.Я попытался указать значение переменной SCRIPT в виде / common / script, но все равно он получил значение Not Found.

1 Ответ

0 голосов
/ 25 сентября 2018

RUN chmod a + x $ SCRIPT / fixWLPForProduction.sh && sync && $ SCRIPT / fixWLPForProduction.sh
ищет сценарий /script/fixWLPForProduction.sh, определенный вашей командой ENV SCRIPT.Но вы сказали в своем комментарии, что скрипт является /common/script/fixWLPForProduction.sh Попытка использовать это вместо ENV SCRIPT / common / script Или использовать абсолютный путь для скрипта.Оттуда вы можете узнать, как правильно установить переменную ENV

...