From 16e6208134210f9d4184a8c2c2710d923b4839af Mon Sep 17 00:00:00 2001 From: Sil Klaasboer Date: Mon, 14 Apr 2025 18:51:30 +0200 Subject: [PATCH] Update dockerfile and devcontainer.json to execute poststart.sh and forward x11 --- .devcontainer/Dockerfile | 30 ++++++++++++++++++++++++++---- .devcontainer/devcontainer.json | 8 +++++++- .devcontainer/poststart.sh | 2 ++ 3 files changed, 35 insertions(+), 5 deletions(-) create mode 100755 .devcontainer/poststart.sh diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 60e5b19..ce378f2 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -16,15 +16,26 @@ RUN apk update && \ 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 -# Set environment variables for Qt and Android SDK ENV QT_VERSION=6.8.0 ENV QT_INSTALL_PATH=/opt/qt-${QT_VERSION} -ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk -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" # Download and install Qt 6.8.0 from the official Qt website RUN mkdir -p ${QT_INSTALL_PATH} && \ @@ -56,6 +67,10 @@ RUN mkdir -p ${QT_INSTALL_PATH} && \ 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 && \ @@ -74,6 +89,13 @@ 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 diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 73ccbe9..22f92f4 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,6 +4,11 @@ "dockerfile": "Dockerfile", "context": "." }, + "postStartCommand": "./.devcontainer/poststart.sh", + "runArgs": [ + "-e", "DISPLAY=${env:DISPLAY}", + "-v", "/tmp/.X11-unix:/tmp/.X11-unix" + ], "customizations": { "vscode": { "settings": { @@ -14,7 +19,8 @@ "ms-vscode.cpptools", "ms-vscode.makefile-tools", "androidtool.android", - "ms-azuretools.vscode-docker" + "ms-azuretools.vscode-docker", + "bbenoist.QML" ] } }, diff --git a/.devcontainer/poststart.sh b/.devcontainer/poststart.sh new file mode 100755 index 0000000..04752c0 --- /dev/null +++ b/.devcontainer/poststart.sh @@ -0,0 +1,2 @@ +#!/bin/bash +echo "Welcome" \ No newline at end of file