From d25346e8142c9ac7c450cd3e44afdbc20b3a53c9 Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Thu, 13 Sep 2018 15:37:05 -0400 Subject: [PATCH 1/6] Adding initial commit for containerizing cool-retro-term --- Dockerfile | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 Dockerfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bbe545f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,17 @@ +FROM ubuntu:18.04 as builder + +#TODO: Clean up after installation and building +RUN apt-get update && apt-get install -y build-essential qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin + +COPY . /app +WORKDIR /app +RUN qmake && make + +RUN adduser user --home /home/user +WORKDIR /app +RUN chmod +x /app/cool-retro-term +USER user +ENTRYPOINT ["./cool-retro-term"] + + +#running: docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri retro-term:5 -- 2.47.2 From af317fe39ae3922c7326b60a85292eb8e18086e8 Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Fri, 14 Sep 2018 15:00:44 -0400 Subject: [PATCH 2/6] Adding documentation and a cleaner dockerfile. --- Dockerfile | 1 + README.md | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index bbe545f..59a12da 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,6 +7,7 @@ COPY . /app WORKDIR /app RUN qmake && make +#Add user to /etc/sudoers with sudo permissions RUN adduser user --home /home/user WORKDIR /app RUN chmod +x /app/cool-retro-term diff --git a/README.md b/README.md index 45d36c5..17a4189 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,7 @@ or: **Arch Linux** sudo pacman -S qt5-base qt5-declarative qt5-quickcontrols qt5-graphicaleffects - + --- **openSUSE** @@ -122,16 +122,22 @@ Install dependencies: sudo zypper install libqt5-qtbase-devel libqt5-qtdeclarative-devel libqt5-qtquickcontrols libqt5-qtgraphicaleffects --- +**Docker** +Docker users running X-Server can run cool-retro-term in an isolated Docker container using the following command. Please note that hardware and x-server resources need to be mounted inside the container in order for the container to have access to hardware acceleration and X-server resources: + +```sh +docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri quay.io/aric49/crt:latest +``` **Anyone else** Install Qt directly from here http://qt-project.org/downloads . Once done export them in you path (replace "_/opt/Qt5.3.1/5.3/gcc_64/bin_" with your correct folder): - + export PATH=/opt/Qt5.3.1/5.3/gcc_64/bin/:$PATH --- ### Compile -Once you installed all dependencies (Qt is installed and in your path) you need to compile and run the application: +Once you installed all dependencies (Qt is installed and in your path) you need to compile and run the application: ```bash # Get it from GitHub @@ -179,6 +185,16 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns open cool-retro-term.app ``` +## Build Instructions Docker +Clone the primary repository with the `--recursive` flag, and perform a Docker build. Docker will automatically compile the code inside a Docker container. To run the docker container, you need to mount X-Server resources and your video card inside the Docker container so that Docker can initiate the GUI and successfully start cool-retro-term with hardware acceleration: + +```sh +git clone --recursive https://github.com/Swordfish90/cool-retro-term.git +docker build -t cool-retro-term:1 +docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri cool-retro-term:1 + +``` + ## Donations I made this project in my spare time because I love what I'm doing. If you are enjoying it and you want to buy me a beer click [here](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=flscogna%40gmail%2ecom&lc=IT&item_name=Filippo%20Scognamiglio¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted). -- 2.47.2 From 90060c8d1fe399c3e0e11abb7d629b2bf040d1b1 Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Fri, 14 Sep 2018 15:00:56 -0400 Subject: [PATCH 3/6] Cleaning up the Dockerfile. --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 59a12da..bbe545f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,6 @@ COPY . /app WORKDIR /app RUN qmake && make -#Add user to /etc/sudoers with sudo permissions RUN adduser user --home /home/user WORKDIR /app RUN chmod +x /app/cool-retro-term -- 2.47.2 From a445ab4b868fff9c61fd9a0de79c3185126feb54 Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Fri, 14 Sep 2018 15:34:30 -0400 Subject: [PATCH 4/6] removing extraneous comments and debugging. --- Dockerfile | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index bbe545f..a2d4656 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ubuntu:18.04 as builder +FROM ubuntu:18.04 #TODO: Clean up after installation and building RUN apt-get update && apt-get install -y build-essential qml-module-qtgraphicaleffects qml-module-qt-labs-folderlistmodel qml-module-qt-labs-settings qml-module-qtquick-controls qml-module-qtquick-dialogs qmlscene qt5-default qt5-qmake qtdeclarative5-dev qtdeclarative5-localstorage-plugin qtdeclarative5-qtquick2-plugin qtdeclarative5-window-plugin @@ -12,6 +12,3 @@ WORKDIR /app RUN chmod +x /app/cool-retro-term USER user ENTRYPOINT ["./cool-retro-term"] - - -#running: docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri retro-term:5 -- 2.47.2 From 8e5bc2ffca0a90af16dd85af7f32c3fae029034b Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Mon, 17 Sep 2018 10:27:42 -0400 Subject: [PATCH 5/6] Updating README to use user settings in cool-retro-term. --- README.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 17a4189..b4cbbed 100644 --- a/README.md +++ b/README.md @@ -123,10 +123,14 @@ Install dependencies: --- **Docker** -Docker users running X-Server can run cool-retro-term in an isolated Docker container using the following command. Please note that hardware and x-server resources need to be mounted inside the container in order for the container to have access to hardware acceleration and X-server resources: +Docker users running X-Server can run cool-retro-term in an isolated Docker container using the following command. Please note that hardware and x-server resources need to be mounted inside the container in order for the container to have access to hardware acceleration and X-server resources. Furthermore, preserving user profile settings within the cool-retro-term container requires a volume mount from your local home directory to the `user` home directory within the container: ```sh -docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri quay.io/aric49/crt:latest +#Create the application settings directory: +mkdir -p ~/.local/share/cool-retro-term + +#Run cool-retro-term: +docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri -v ~/.local/share/cool-retro-term:/home/user/.local/share/cool-retro-term quay.io/aric49/crt:latest ``` **Anyone else** -- 2.47.2 From c7bb749d3d80a1a3ec0e5caf5e57c7472bb519bc Mon Sep 17 00:00:00 2001 From: Aric Renzo Date: Mon, 17 Sep 2018 10:29:25 -0400 Subject: [PATCH 6/6] Updating docker build instructions. --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index b4cbbed..2b00c29 100644 --- a/README.md +++ b/README.md @@ -193,9 +193,14 @@ open cool-retro-term.app Clone the primary repository with the `--recursive` flag, and perform a Docker build. Docker will automatically compile the code inside a Docker container. To run the docker container, you need to mount X-Server resources and your video card inside the Docker container so that Docker can initiate the GUI and successfully start cool-retro-term with hardware acceleration: ```sh +#Git clone git clone --recursive https://github.com/Swordfish90/cool-retro-term.git + +#Docker Build docker build -t cool-retro-term:1 -docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri cool-retro-term:1 + +#Run the built image. +docker run -it --privileged --rm -e DISPLAY=$DISPLAY -e XDG_RUNTIME_DIR=/run/user/1000 -e XAUTHORITY=$XAUTHORITY -v /run/user/1000:/run/user/1000 -v /tmp/.X11-unix:/tmp/.X11-unix -v /dev/dri:/dev/dri -v ~/.local/share/cool-retro-term:/home/user/.local/share/cool-retro-term cool-retro-term:1 ``` -- 2.47.2