Cool-Retro-Term in a Docker Container #474

Closed
aric49 wants to merge 6 commits from aric49/feature/Docker into master
2 changed files with 42 additions and 3 deletions

14
Dockerfile Normal file
View File

@ -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
apiraino commented 2019-01-11 14:33:01 +01:00 (Migrated from github.com)
Review
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
RUN apt-get -yyq autoremove && \
        apt-get clean -yyq && \
        rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

```suggestion 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 RUN apt-get -yyq autoremove && \ apt-get clean -yyq && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ```
aric49 commented 2019-01-12 01:57:44 +01:00 (Migrated from github.com)
Review

Thanks for the input @apiraino! I almost forgot about that change. Good catch!

Thanks for the input @apiraino! I almost forgot about that change. Good catch!
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"]

View File

@ -122,6 +122,16 @@ Install dependencies:
sudo zypper install libqt5-qtbase-devel libqt5-qtdeclarative-devel libqt5-qtquickcontrols libqt5-qtgraphicaleffects 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** **Anyone else**
@ -179,6 +189,21 @@ cp -r qmltermwidget/QMLTermWidget cool-retro-term.app/Contents/PlugIns
open cool-retro-term.app 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 ## 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&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted). 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&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donate_LG%2egif%3aNonHosted).