#1296·qt

新的、可运行的 linux_static 部署 dockerfile

作者: pygrum创建于 2024年7月13日更新于 2024年7月13日

FROM ubuntu:16.04 as base ENV USER=user ENV HOME=/home/$USER ENV GOPATH=$HOME/work ENV PATH=/usr/local/go/bin:$PATH RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install ca-certificates curl git RUN GO=go1.21.10.linux-amd64.tar.gz && curl -sL --retry 10 --retry-delay 60 -O https://dl.google.com/go/$GO && tar -xzf $GO -C /usr/local RUN GO111MODULE=off /usr/local/go/bin/go get -tags=no_env GitHub.com/therecipe/qt/cmd/... RUN $GOPATH/bin/qtsetup prep FROM therecipe/qt:linux_static_base as fcitx ENV CMAKE_PREFIX_PATH=/opt/Qt/5.13.0/gcc_64/lib/cmake/Qt5/ RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install build-essential libglib2.0-dev libglu1-mesa-dev
&& apt-get --no-install-recommends -qq -y install ca-certificates cmake git libxkbcommon-dev RUN git clone -q --depth 1 https://GitHub.com/fcitx/fcitx-qt5.git /fcitx-qt5 RUN FILE=/fcitx-qt5/qt5/platforminputcontext/CMakeLists.txt
&& echo "ADD_DEFINITIONS(-DQT_STATICPLUGIN)\n$(cat $FILE)" > $FILE
&& echo "find_package(Qt5 REQUIRED COMPONENTS Core Gui DBus)\n$(cat $FILE)" > $FILE
&& echo "$(head -n -5 $FILE)" > $FILE
&& sed -i -e 's/ MODULE / STATIC /g' $FILE RUN cd /fcitx-qt5/qt5/platforminputcontext && cmake . && make -j $(grep -c ^processor /proc/cpuinfo) FROM ubuntu:16.04 LABEL maintainer=therecipe ENV USER=user ENV HOME=/home/$USER ENV GOPATH=$HOME/work ENV PATH=/usr/local/go/bin:$PATH ENV QT_API=5.13.0 ENV QT_DIR=/opt/Qt ENV QT_DOCKER=true ENV QT_STATIC=true ENV GO111MODULE=off COPY --from=base /usr/local/go /usr/local/go COPY --from=base $GOPATH/bin $GOPATH/bin COPY --from=base $GOPATH/src/GitHub.com/therecipe/qt $GOPATH/src/GitHub.com/therecipe/qt COPY --from=therecipe/qt:linux_static_base /opt/Qt/5.13.0 /opt/Qt/5.13.0 COPY --from=fcitx /fcitx-qt5/qt5/platforminputcontext/libfcitxplatforminputcontextplugin.a /opt/Qt/5.13.0/gcc_64/plugins/platforminputcontexts/libfcitxplatforminputcontextplugin.a RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install build-essential libglib2.0-dev libglu1-mesa-dev libpulse-dev
&& apt-get --no-install-recommends -qq -y install fontconfig libasound2 libegl1-mesa libnss3 libpci3 libxcomposite1 libxcursor1 libxi6 libxrandr2 libxtst6 && apt-get -qq clean RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install libfontconfig1-dev libfreetype6-dev libxrender-dev libxkbcommon-dev && apt-get -qq clean RUN $GOPATH/bin/qtsetup prep RUN $GOPATH/bin/qtsetup check RUN $GOPATH/bin/qtsetup generate RUN cd $GOPATH/src/GitHub.com/therecipe/qt/internal/examples/widgets/line_edits && $GOPATH/bin/qtdeploy build linux && rm -rf ./deploy RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install ca-certificates git pkg-config #ENV PATH=$HOME/flutter/bin:$PATH

#RUN apt-get -qq update && apt-get --no-install-recommends -qq -y install curl unzip && apt-get -qq clean #RUN git clone -q --depth 1 -b stable https://GitHub.com/flutter/flutter.git $HOME/flutter #RUN …