Dockerfile Sencha CMD 7 завершается неудачно с незаконным отражающим доступом - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь получить образ докера для своего проекта, но у меня возникают серьезные проблемы, пытаясь его запустить.

Мне было интересно, есть ли у кого-нибудь настройки докера, использующие Sencha CMD 7, которые они могли бы поделиться.

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

FROM nginx:latest

RUN mkdir -p /usr/share/man/man1
RUN apt-get update -y && apt-get install -y \
    unzip \
    curl \
    default-jre

WORKDIR /tmp

RUN curl http://cdn.sencha.com/cmd/7.0.0.40/no-jre/SenchaCmd-7.0.0.40-linux-amd64.sh.zip -o SenchaCmd-7.0.0.40-linux-amd64.sh.zip
RUN unzip SenchaCmd-7.0.0.40-linux-amd64.sh.zip

RUN /tmp/`find SenchaCmd*.sh` -q -dir "/opt/sencha"
RUN ln -s /opt/sencha/sencha /usr/local/bin/sencha

COPY . /opt/project
WORKDIR /opt/project

RUN sencha app build
RUN cp -r build/production/project/* /usr/share/nginx/html

При запуске установщика возвращаются следующие ошибки:

Step 7/12 : RUN /tmp/`find SenchaCmd*.sh` -q -dir "/opt/sencha"
 ---> Running in f785977a8e37
Starting Installer ...
The installation directory has been set to /opt/sencha.
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.install4j.runtime.util.ToolTipHelpLabel (file:/tmp/SenchaCmd-7.0.0.40-linux-amd64.sh.8.dir/i4jruntime.jar) to constructor javax.swing.ToolTipManager()
WARNING: Please consider reporting this to the maintainers of com.install4j.runtime.util.ToolTipHelpLabel
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Extracting files ...
/opt/sencha/../i4j838865445042160025.tmp (No such file or directory)
No such file or directory

Затем он попадает вЗапустите шаг сборки приложения Sencha и вернитесь к следующим проблемам

Step 11/12 : RUN sencha app build
 ---> Running in edffc4ea27be
java.io.FileNotFoundException: /opt/sencha/.install4j/6b5f63d9.lprop (No such file or directory)
    at java.base/java.io.FileInputStream.open0(Native Method)
    at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
    at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
    at com.install4j.runtime.launcher.UnixLauncher.readProperties(Unknown Source)
    at com.install4j.runtime.launcher.UnixLauncher.main(Unknown Source)
Sencha Cmd v7.0.0.40
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.gson.internal.bind.ReflectiveTypeAdapterFactory (file:/opt/sencha/lib/closure-compiler-v20180610.jar) to field java.io.File.path
WARNING: Please consider reporting this to the maintainers of com.google.gson.internal.bind.ReflectiveTypeAdapterFactory
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
[INF] Processing Build Descriptor : classic (production environment)
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release
Warning: Nashorn engine is planned to be removed from a future JDK release

Я хотел бы увидеть другие настройки sencha cmd 7 или некоторую помощь в их создании.

Спасибо

Ответы [ 2 ]

0 голосов
/ 17 октября 2019

Вот изображение Docker для Sencha CMD https://github.com/rockmagic/sencha-cmd. Я не знаю сопровождающего, но это хорошая отправная точка.

Это рабочий пример использования этого изображения. Вам просто нужно заменить <AppName> на имя вашего приложения.

FROM rockmagicnet/sencha-cmd:7.0.0 AS builder
ENV OPENSSL_CONF=/dev/null
COPY . /app
RUN sencha app build production

FROM nginx:latest
COPY --from=builder /app/build/production/<AppName> /usr/share/nginx/html

Примечание: переменная окружения OPENSSL_CONF необходима, потому что Sencha CMD зависит от более старого libssl, который не установлен в контейнере

0 голосов
/ 03 октября 2019

Install4J, есть проблемы с более новыми JRE. Я бы попробовал установить Java 8, так что install4j работает.

Другой вариант, вы можете установить sencha cmd через npm. Я еще не пробовал, но мы постоянно делаем это на проектах и ​​используем npx sencha ....

...