Move Dockerfile to repo root + remove devcontainer
This commit is contained in:
103
Dockerfile
Normal file
103
Dockerfile
Normal file
@@ -0,0 +1,103 @@
|
||||
# Use the official Alpine Linux image
|
||||
FROM alpine:3.21
|
||||
|
||||
# Install dependencies for Android SDK and Qt build tools
|
||||
RUN apk update && \
|
||||
apk add --no-cache \
|
||||
bash \
|
||||
build-base \
|
||||
cmake \
|
||||
git \
|
||||
curl \
|
||||
unzip \
|
||||
openjdk17 \
|
||||
libx11 \
|
||||
libxcomposite \
|
||||
libxrandr \
|
||||
libxcursor \
|
||||
libxi \
|
||||
libx11 \
|
||||
libx11-dev \
|
||||
libxcb \
|
||||
libxcb-dev \
|
||||
libxkbcommon \
|
||||
libxkbcommon-dev \
|
||||
xcb-util-dev \
|
||||
xcb-util-image-dev \
|
||||
xcb-util-keysyms-dev \
|
||||
xcb-util-renderutil-dev \
|
||||
xcb-util-wm-dev \
|
||||
xcb-util-cursor-dev \
|
||||
mesa-dev \
|
||||
freetype-dev \
|
||||
fontconfig-dev \
|
||||
dbus-dev \
|
||||
libusb
|
||||
|
||||
ENV QT_VERSION=6.8.0
|
||||
ENV QT_INSTALL_PATH=/opt/qt-${QT_VERSION}
|
||||
|
||||
# Download and install Qt 6.8.0 from the official Qt website
|
||||
RUN mkdir -p ${QT_INSTALL_PATH} && \
|
||||
cd ${QT_INSTALL_PATH} && \
|
||||
wget https://download.qt.io/archive/qt/6.8/6.8.0/single/qt-everywhere-src-${QT_VERSION}.tar.xz && \
|
||||
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz && \
|
||||
rm qt-everywhere-src-${QT_VERSION}.tar.xz && \
|
||||
cd qt-everywhere-src-${QT_VERSION} && \
|
||||
./configure -prefix ${QT_INSTALL_PATH} \
|
||||
-nomake examples \
|
||||
-nomake tests \
|
||||
-nomake benchmarks \
|
||||
-optimized-qmake \
|
||||
-commercial -confirm-license \
|
||||
-skip qt3d \
|
||||
-skip qtdatavis3d \
|
||||
-skip qtgamepad \
|
||||
-skip qtlottie \
|
||||
-skip qtnetworkauth \
|
||||
-skip qtquicktimeline \
|
||||
-skip qtsensors \
|
||||
-skip qtspeech \
|
||||
-skip qtwebchannel \
|
||||
-skip qtwebengine \
|
||||
-skip qtwebglplugin \
|
||||
-release \
|
||||
-optimize-size && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
rm -rf ${QT_INSTALL_PATH}/qt-everywhere-src-${QT_VERSION}
|
||||
|
||||
|
||||
ENV ANDROID_SDK_ROOT=/opt/android-sdk
|
||||
ENV PATH="${QT_INSTALL_PATH}/bin:${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin:${ANDROID_SDK_ROOT}/platform-tools:${ANDROID_SDK_ROOT}/emulator:${ANDROID_SDK_ROOT}/tools:${ANDROID_SDK_ROOT}/tools/bin:${JAVA_HOME}/bin:$PATH"
|
||||
|
||||
# Install Android SDK Command Line Tools
|
||||
RUN mkdir -p ${ANDROID_SDK_ROOT}/cmdline-tools && \
|
||||
curl -o sdk-tools-linux.zip https://dl.google.com/android/repository/commandlinetools-linux-11076708_latest.zip && \
|
||||
unzip sdk-tools-linux.zip -d ${ANDROID_SDK_ROOT}/cmdline-tools && \
|
||||
rm sdk-tools-linux.zip && \
|
||||
mv ${ANDROID_SDK_ROOT}/cmdline-tools/cmdline-tools ${ANDROID_SDK_ROOT}/cmdline-tools/latest
|
||||
|
||||
# Install required Android SDK components
|
||||
RUN yes | sdkmanager --licenses && \
|
||||
sdkmanager --update && \
|
||||
sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.2"
|
||||
|
||||
# Verify SDK installation
|
||||
RUN sdkmanager --list
|
||||
|
||||
# Set working directory
|
||||
WORKDIR /workspace
|
||||
|
||||
# Set environment variables for Qt and Android SDK
|
||||
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk
|
||||
ENV QT_QPA_PLATFORM=xcb
|
||||
ENV QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/qt6/plugins/platforms
|
||||
ENV LD_LIBRARY_PATH=/opt/qt-6.8.0
|
||||
ENV QT_DEBUG_PLUGINS=1
|
||||
|
||||
# Expose ADB debugging port
|
||||
EXPOSE 5555
|
||||
|
||||
# Start bash as the default command
|
||||
CMD ["/bin/bash"]
|
||||
Reference in New Issue
Block a user