用于QT编译的Dockerfile:找不到./configure

时间:2019-03-14 21:19:07

标签: qt docker build dockerfile

我正在编写一个从源代码安装Qt的dockerfile:

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 个答案:

答案 0 :(得分:1)

该问题是因为您使用的是Zip版本,它具有Windows的行尾样式,不适用于Linux。

为了验证您是否可以在执行./configure之前将其添加到Dockerfile中,它将其转换为Linux行尾样式。

  

注意:解压缩qt.zip时使用unzip -a无效,因为我已经对其进行了测试

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

因此,要解决整个问题,您需要下载适用于Linux环境的tar.gz版本