Dockerfile для компиляции QT: не могу найти ./configure - PullRequest
0 голосов
/ 15 марта 2019

Я пишу dockerfile, который устанавливает Qt из источника:

FROM ubuntu:bionic

ARG QT_FILE_LINK=http://download.qt.io/official_releases/qt/5.11/5.11.3/single/qt-everywhere-src-5.11.3.zip

RUN apt-get update \
    && apt-get install -y --no-install-recommends build-essential

RUN wget --progress=bar:force -O qt.zip $QT_FILE_LINK
RUN echo "Unzipping..." && unzip -q qt.zip
RUN rm qt.zip && cd qt-everywhere-src-* && ls && ./configure \
  -confirm-license -opensource \
  -nomake examples -nomake tests -no-compile-examples \
  -no-xcb \
  -prefix "/usr/local/Qt"

ENTRYPOINT "/bin/bash"

Проблема в том, что он не работает на ./configure, даже если вы видите, что предыдущая команда, ls, показывает, что файл configure действительно существует.

Там написано

/bin/sh: 1: ./configure: not found

1 Ответ

1 голос
/ 15 марта 2019

Проблема в том, что вы используете версию Zip, она имеет стиль конца строки в Windows, который не работает в linux.

Чтобы убедиться, что вы можете добавить это в свой Dockerfile прямо перед выполнением ./configure который преобразует его в стиль конца строки в Linux.

ПРИМЕЧАНИЕ: использование unzip -a при извлечении qt.zip не будет работать, так как я уже тестировал его

sed -i 's/\r//g' ./configure && ./configure

Это будет работать, но также начнет вызывать другие ошибки по той же причине, что и вы можете увидеть ниже:

+ cd qtbase
+ /qt-everywhere-src-5.11.3/qtbase/configure -top-level -confirm-license -opensource -nomake examples -nomake tests -no-compile-examples -no-xcb -prefix /usr/local/Qt
./configure: 49: exec: /qt-everywhere-src-5.11.3/qtbase/configure: not found

Так что, чтобы исправить всю проблему, вам нужно скачать tar.gz версия, подходящая для среды Linux

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...