aboutsummaryrefslogtreecommitdiffstats
path: root/docker
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-07-09 17:09:26 -0700
committerJake Petroules <jake.petroules@qt.io>2017-07-12 09:38:01 +0000
commit73abc60f00f2d48b39cf9e938ad85527e5efbdfc (patch)
tree11ebf7eeb01b1ee17071b5ab7f9c269d6290505b /docker
parenta216557fe2cdab15e4c4fbc76be0ddcd13ed8086 (diff)
Add a Dockerfile to create a Debian Linux dev environment for Qbs
This patch includes a Dockerfile that can be used to create a Docker machine image suitable for Qbs development and for creating Qbs release packages. The image produced by this Dockerfile has been uploaded to Docker Hub as qbsbuild/qbsdev:stretch. Developers can either build the Docker image manually using `docker build` (which takes longer) or download the prebuilt image from Docker Hub using `docker pull`. Change-Id: I058c1c91a4a1bd075604d476467fd4de4be00807 Reviewed-by: Kai Koehne <kai.koehne@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'docker')
-rw-r--r--docker/stretch/Dockerfile27
-rw-r--r--docker/stretch/qtifwsilent.qs47
2 files changed, 74 insertions, 0 deletions
diff --git a/docker/stretch/Dockerfile b/docker/stretch/Dockerfile
new file mode 100644
index 000000000..904591fce
--- /dev/null
+++ b/docker/stretch/Dockerfile
@@ -0,0 +1,27 @@
+FROM debian:9
+LABEL Description="Debian development environment for Qbs with Qt 5.9 and various dependencies for testing Qbs modules and functionality"
+
+# Dependencies of the Qt offline installer
+RUN apt-get -y update && apt-get install -y \
+ curl \
+ libdbus-1-3 \
+ libexpat1 \
+ libfontconfig1 \
+ libfreetype6 \
+ libgl1-mesa-glx \
+ libglib2.0-0 \
+ libx11-6 \
+ libx11-xcb1
+
+COPY qtifwsilent.qs qtifwsilent.qs
+RUN curl -L -O 'https://download.qt.io/official_releases/qt/5.9/5.9.1/qt-opensource-linux-x64-5.9.1.run' && \
+ chmod +x qt-opensource-linux-x64-5.9.1.run && \
+ QT_INSTALL_DIR=/usr/local/Qt ./qt-opensource-linux-x64-5.9.1.run --platform minimal --script qtifwsilent.qs && \
+ rm -f qt-opensource-linux-x64-5.9.1.run
+ENV QTDIR /usr/local/Qt/5.9.1/gcc_64
+ENV PATH="/usr/local/Qt/Tools/QtCreator/bin:${PATH}"
+
+RUN apt-get -y update && apt-get install -y \
+ g++ \
+ gcc \
+ git
diff --git a/docker/stretch/qtifwsilent.qs b/docker/stretch/qtifwsilent.qs
new file mode 100644
index 000000000..6b087ccde
--- /dev/null
+++ b/docker/stretch/qtifwsilent.qs
@@ -0,0 +1,47 @@
+function Controller() {
+ installer.autoRejectMessageBoxes();
+ installer.installationFinished.connect(function() {
+ gui.clickButton(buttons.NextButton);
+ })
+}
+
+Controller.prototype.WelcomePageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.CredentialsPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.IntroductionPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.TargetDirectoryPageCallback = function() {
+ gui.currentPageWidget().TargetDirectoryLineEdit.setText(installer.environmentVariable("QT_INSTALL_DIR"));
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ComponentSelectionPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.LicenseAgreementPageCallback = function() {
+ gui.currentPageWidget().AcceptLicenseRadioButton.setChecked(true);
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.StartMenuDirectoryPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.ReadyForInstallationPageCallback = function() {
+ gui.clickButton(buttons.NextButton);
+}
+
+Controller.prototype.FinishedPageCallback = function() {
+ var checkBoxForm = gui.currentPageWidget().LaunchQtCreatorCheckBoxForm;
+ if (checkBoxForm && checkBoxForm.launchQtCreatorCheckBox)
+ checkBoxForm.launchQtCreatorCheckBox.checked = false;
+ gui.clickButton(buttons.FinishButton);
+}