diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a2d4656 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +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 + +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"] diff --git a/README.md b/README.md index 45d36c5..2b00c29 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,26 @@ 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. 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 +#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** 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 +189,21 @@ 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 +git clone --recursive https://github.com/Swordfish90/cool-retro-term.git + +#Docker Build +docker build -t 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 + +``` + ## 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).