Add docker files for development environment
parent
3ed56922a5
commit
c5cc2964f2
|
@ -1,4 +1,5 @@
|
||||||
/demo/rust/Cargo.lock
|
/demo/rust/Cargo.lock
|
||||||
/demo/rust/target/
|
/demo/rust/target/
|
||||||
|
/docker_home/
|
||||||
/tests/rust_*/Cargo.lock
|
/tests/rust_*/Cargo.lock
|
||||||
/tests/rust_*/target/
|
/tests/rust_*/target/
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Dockerfile for a development environment for rust_qt_binding_generator
|
||||||
|
FROM kdeneon/plasma:dev-stable
|
||||||
|
|
||||||
|
USER root
|
||||||
|
|
||||||
|
RUN apt-get update && apt-get dist-upgrade -y
|
||||||
|
|
||||||
|
# build dependencies and many extra qml modules
|
||||||
|
RUN apt-get install -y --no-install-recommends \
|
||||||
|
qtcreator rustc cargo ninja-build cmake g++ extra-cmake-modules \
|
||||||
|
kdesdk-scripts \
|
||||||
|
qtdeclarative5-dev-tools qtdeclarative5-dev qtquickcontrols2-5-dev \
|
||||||
|
libqt5charts5-dev libqt5svg5-dev \
|
||||||
|
qtdeclarative5-render2d-plugin \
|
||||||
|
qt5-doc qtbase5-doc qtcharts5-doc qtcreator-doc qtquickcontrols2-5-doc \
|
||||||
|
qtquickcontrols5-doc qtsvg5-doc qttools5-doc
|
||||||
|
|
||||||
|
RUN apt-get install -y --no-install-recommends \
|
||||||
|
qtquickcontrols2-5-examples
|
||||||
|
|
||||||
|
# these are extra
|
||||||
|
# RUN apt-get install -y --no-install-recommends qbs-doc qml-module-org-kde-activities qml-module-org-kde-analitza qml-module-org-kde-bluezqt qml-module-org-kde-draganddrop qml-module-org-kde-extensionplugin qml-module-org-kde-games-core qml-module-org-kde-kaccounts qml-module-org-kde-kconfig qml-module-org-kde-kcoreaddons qml-module-org-kde-kholidays qml-module-org-kde-kio qml-module-org-kde-kirigami qml-module-org-kde-kirigami2 qml-module-org-kde-kquickcontrols qml-module-org-kde-kquickcontrolsaddons qml-module-org-kde-kwindowsystem qml-module-org-kde-newstuff qml-module-org-kde-people qml-module-org-kde-purpose qml-module-org-kde-runnermodel qml-module-org-kde-solid qml-module-org-kde-telepathy qml-module-qt-labs-calendar qml-module-qt-labs-folderlistmodel qml-module-qt-labs-platform qml-module-qt-labs-settings qml-module-qt-labs-sharedimage qml-module-qt-websockets qml-module-qt3d qml-module-qtaudioengine qml-module-qtbluetooth qml-module-qtcharts qml-module-qtfeedback qml-module-qtgraphicaleffects qml-module-qtgstreamer qml-module-qtlocation qml-module-qtmultimedia qml-module-qtnfc qml-module-qtpositioning qml-module-qtpurchasing qml-module-qtqml-models2 qml-module-qtqml-statemachine qml-module-qtquick-controls qml-module-qtquick-controls-styles-breeze qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-extras qml-module-qtquick-layouts qml-module-qtquick-localstorage qml-module-qtquick-particles2 qml-module-qtquick-privatewidgets qml-module-qtquick-scene2d qml-module-qtquick-scene3d qml-module-qtquick-sharedimage qml-module-qtquick-templates2 qml-module-qtquick-virtualkeyboard qml-module-qtquick-window2 qml-module-qtquick-xmllistmodel qml-module-qtquick2 qml-module-qtsensors qml-module-qtsysteminfo qml-module-qttest qml-module-qtwayland-compositor qml-module-qtwebchannel qml-module-qtwebengine qml-module-qtwebkit qml-module-qtwebsockets qml-module-qtwebview qt-at-spi-doc qt3d5-doc qtconnectivity5-doc qtgraphicaleffects5-doc qtgstreamer-doc qtiplot-doc qtlocation5-doc qtmultimedia5-doc qtnetworkauth5-doc qtpim5-doc qtpositioning5-doc qtscript5-doc qtsensors5-doc qtserialport5-doc qtspeech5-doc qtwayland5-doc qtwebchannel-doc qtwebchannel5-doc qtwebengine5-doc qtwebkit5-doc qtwebkit5-examples-doc qtwebsockets5-doc qtwebview5-doc qtx11extras5-doc qtxmlpatterns5-doc
|
||||||
|
|
||||||
|
USER neon
|
||||||
|
|
||||||
|
CMD ["/bin/bash", "-l"]
|
|
@ -0,0 +1,36 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# exit on first error
|
||||||
|
set -o errexit
|
||||||
|
# exit when undefined var is used
|
||||||
|
set -o nounset
|
||||||
|
# exit with error code of right-most command in a pipe
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
# This script opens a bash session in docker for the Dockerfile in this folder.
|
||||||
|
|
||||||
|
readonly image_name=rust_qt_binding_generator_dev
|
||||||
|
readonly docker_file_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
readonly src_dir=$(dirname "$docker_file_dir")
|
||||||
|
readonly docker_home_dir="$src_dir/docker_home"
|
||||||
|
|
||||||
|
# create the docker image
|
||||||
|
docker build -t "$image_name" "$docker_file_dir"
|
||||||
|
|
||||||
|
# create a working directory
|
||||||
|
if [ ! -a "$docker_home_dir" ]; then
|
||||||
|
mkdir -p "$docker_home_dir"/rust_qt_binding_generator
|
||||||
|
fi
|
||||||
|
|
||||||
|
# give the docker application access to X
|
||||||
|
xhost +si:localuser:"$USER"
|
||||||
|
|
||||||
|
# start a docker session with the source code and a dedicated home directory
|
||||||
|
docker run --rm -v "$docker_home_dir":/home/neon \
|
||||||
|
-v "$src_dir":/home/neon/rust_qt_binding_generator \
|
||||||
|
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
-e DISPLAY="$DISPLAY" \
|
||||||
|
-e XDG_CURRENT_DESKTOP="$XDG_CURRENT_DESKTOP" \
|
||||||
|
-ti "$image_name" bash
|
||||||
|
|
||||||
|
# --network none \
|
Loading…
Reference in New Issue