Cool-Retro-Term in a Docker Container #474
							
								
								
									
										14
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Dockerfile
									
									
									
									
									
										Normal 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
 | 
			
		||||
| 
					
	
	
	
	
	
	
	
	 | 
			||||
 | 
			
		||||
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"]
 | 
			
		||||
							
								
								
									
										25
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										25
									
								
								README.md
									
									
									
									
									
								
							@@ -122,6 +122,16 @@ 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**
 | 
			
		||||
 | 
			
		||||
@@ -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).
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user
	
Thanks for the input @apiraino! I almost forgot about that change. Good catch!