- Initial release.
This commit is contained in:
		
						commit
						55dd9830d9
					
				
							
								
								
									
										11
									
								
								.env
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								.env
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,11 @@
 | 
			
		||||
# Rx3 X11 Pulse Mageia-9 Docker Image
 | 
			
		||||
#-------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
IMG_NAME="x11-pulse-mga9"
 | 
			
		||||
IMG_FULL_NAME="Rx3 X11 Pulse Mageia-9 Docker Image"
 | 
			
		||||
IMG_VERSION="1.0.0"
 | 
			
		||||
IMG_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
 | 
			
		||||
 | 
			
		||||
# To be difines at run time
 | 
			
		||||
USER_ID=""
 | 
			
		||||
APPL_HOME_DIR=""
 | 
			
		||||
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							@ -0,0 +1,2 @@
 | 
			
		||||
*~
 | 
			
		||||
*.old
 | 
			
		||||
							
								
								
									
										29
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								Dockerfile
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,29 @@
 | 
			
		||||
# Rx3 X11 Pulse Mageia-9 Docker Image
 | 
			
		||||
#-------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
FROM docker.xor.rx3:5000/rx3/base-mga9:1.2.0
 | 
			
		||||
 | 
			
		||||
ARG IMG_NAME
 | 
			
		||||
ARG IMG_FULL_NAME
 | 
			
		||||
ARG IMG_VERSION
 | 
			
		||||
ARG IMG_MAINTAINER
 | 
			
		||||
 | 
			
		||||
LABEL org.rx3.${IMG_NAME}.name=${IMG_FULL_NAME}
 | 
			
		||||
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
 | 
			
		||||
LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER}
 | 
			
		||||
LABEL maintainer=${IMG_MAINTAINER}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ENV DISPLAY=:0
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
RUN    urpmi --force xterm lib64jack0 lib64opencl1 pipewire-media-session lib64proxy-webkit hunspell-en lib64xcb-xkb1 lib64xcomposite1 lib64xcursor1 lib64xdamage1 lib64xft-gir2.0 lib64xi6 lib64xinerama1 lib64xkbcommon0 lib64vulkan-loader1 lib64xlib-gir2.0 lib64xrandr2 lib64xmlb2 lib64xslt1 libexif12-common libgxps-tools frozen-bubble emacs
 | 
			
		||||
 | 
			
		||||
COPY /sbin/user_add_exec /sbin
 | 
			
		||||
 | 
			
		||||
VOLUME /home
 | 
			
		||||
VOLUME /tmp/.X11-unix/X0
 | 
			
		||||
VOLUME /run/user
 | 
			
		||||
 | 
			
		||||
CMD ["/bin/bash"]
 | 
			
		||||
ENTRYPOINT []
 | 
			
		||||
							
								
								
									
										23
									
								
								ReadMe.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								ReadMe.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,23 @@
 | 
			
		||||
Welcome to X11-Pulse-Mga9 docker image!
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
This is project aims to build a X11 + Pulse + Mageia-9 docker image able to run any graphic & audio application isolated.
 | 
			
		||||
 | 
			
		||||
Features:
 | 
			
		||||
    - Curtently based on base-mga9:1.2.0 image,
 | 
			
		||||
    - X11 & Pulse base libraries installed,
 | 
			
		||||
    - user_add_exec program to create on the run the user environement.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Usage:
 | 
			
		||||
    ./run.sh <Application Dir> <Application Exec>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Enjoy it!
 | 
			
		||||
 | 
			
		||||
Your Rx3 Team.
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
arnaud@rx3.net
 | 
			
		||||
https://git.rx3.org/gitea/rx3/x11-pulse-mga9
 | 
			
		||||
							
								
								
									
										8
									
								
								ReleaseNotes.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								ReleaseNotes.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,8 @@
 | 
			
		||||
------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
X11-Pulse-Mga9 V 1.0.0 - A. GIBERT - 2024/08/23
 | 
			
		||||
------------------------------------------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- Initial release,
 | 
			
		||||
- Use based on base-mga9:1.2.0 image,
 | 
			
		||||
- X11 & Pulse ready,
 | 
			
		||||
- user_add_exec installed.
 | 
			
		||||
							
								
								
									
										40
									
								
								compose.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								compose.yaml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,40 @@
 | 
			
		||||
# Rx3 X11 Pulse Mageia-9 Docker Image
 | 
			
		||||
#-------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
name: ${IMG_NAME}
 | 
			
		||||
 | 
			
		||||
services:
 | 
			
		||||
  default:
 | 
			
		||||
    container_name: ${IMG_NAME}
 | 
			
		||||
    image: docker.xor.rx3:5000/rx3/${IMG_NAME}:${IMG_VERSION}
 | 
			
		||||
    
 | 
			
		||||
    build:
 | 
			
		||||
      context: .
 | 
			
		||||
      args:
 | 
			
		||||
        - IMG_NAME=${IMG_NAME}
 | 
			
		||||
        - IMG_FULL_NAME=${IMG_FULL_NAME}
 | 
			
		||||
        - IMG_VERSION=${IMG_VERSION}
 | 
			
		||||
        - IMG_MAINTAINER=${IMG_MAINTAINER}
 | 
			
		||||
        
 | 
			
		||||
    restart: unless-stopped
 | 
			
		||||
    
 | 
			
		||||
    environment:
 | 
			
		||||
        - DISPLAY=:0
 | 
			
		||||
 | 
			
		||||
    volumes:
 | 
			
		||||
        - home_dir:/home
 | 
			
		||||
        - type: bind
 | 
			
		||||
          source: /tmp/.X11-unix/X0
 | 
			
		||||
          target: /tmp/.X11-unix/X0
 | 
			
		||||
        - type: bind
 | 
			
		||||
          source: /run/user/${USER_ID}/pulse
 | 
			
		||||
          target: /run/user/${USER_ID}/pulse
 | 
			
		||||
        - type: bind
 | 
			
		||||
          source: ${APPL_HOME_DIR}
 | 
			
		||||
          target: ${APPL_HOME_DIR}
 | 
			
		||||
 | 
			
		||||
    network_mode: bridge
 | 
			
		||||
    
 | 
			
		||||
volumes:
 | 
			
		||||
  home_dir:
 | 
			
		||||
    external: true
 | 
			
		||||
							
								
								
									
										16
									
								
								run.sh
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										16
									
								
								run.sh
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,16 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
export APPL_HOME_DIR="$1"
 | 
			
		||||
shift
 | 
			
		||||
 | 
			
		||||
export APPL_NAME="$1"
 | 
			
		||||
shift
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
export USER_ID=$(id -u)
 | 
			
		||||
export GROUP_ID=$(id -g)
 | 
			
		||||
export GROUP_NAME=$(id -gn)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
docker compose run --rm default /sbin/user_add_exec ${USER_ID} ${USER} ${HOME} ${GROUP_ID} ${GROUP_NAME} ${APPL_HOME_DIR}/${APPL_NAME} $*
 | 
			
		||||
							
								
								
									
										42
									
								
								sbin/user_add_exec
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										42
									
								
								sbin/user_add_exec
									
									
									
									
									
										Executable file
									
								
							@ -0,0 +1,42 @@
 | 
			
		||||
#!/bin/bash
 | 
			
		||||
 | 
			
		||||
for arg in User_Id User_Name Home_Dir Group_Id Group_Name
 | 
			
		||||
do
 | 
			
		||||
    declare "$arg"=$1
 | 
			
		||||
    shift
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "User Add & Exec: User_Id: (${User_Id})   User_Name: [${User_Name}]   Home_Dir: [${Home_Dir}]   Group_Id: (${Group_Id})   Group_Name: [${Group_Name}]"
 | 
			
		||||
echo "                 Display: [${DISPLAY}]   Cmd: [${*}]"
 | 
			
		||||
echo ""
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "Creating group..."
 | 
			
		||||
 | 
			
		||||
groupadd --gid ${Group_Id} ${Group_Name}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "Creating user..."
 | 
			
		||||
 | 
			
		||||
if [[ ! -d ${Home_Dir} ]]
 | 
			
		||||
then
 | 
			
		||||
    home_opts="--create-home"
 | 
			
		||||
fi
 | 
			
		||||
 | 
			
		||||
useradd 2>/dev/null --uid ${User_Id} --gid ${Group_Id} -m --home-dir ${Home_Dir} ${home_opts} --password "" ${User_Name}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "Update global profile..."
 | 
			
		||||
 | 
			
		||||
echo -e "export DISPLAY=${DISPLAY}\nexport XDG_RUNTIME_DIR=/run/user/${User_Id}" >/etc/profile.d/x11.sh
 | 
			
		||||
 | 
			
		||||
chown ${User_Name}:${Group_Name} /run/user/${User_Id}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
echo "Exec Cmd..."
 | 
			
		||||
 | 
			
		||||
su - -P ${User_Name} -c $*
 | 
			
		||||
 | 
			
		||||
echo "Completed!"
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user