- Initial release,

- Based on rx3-docker/x11-pulse:1.2.2-mga9 image.
This commit is contained in:
Arnaud G. GIBERT 2025-04-13 11:29:31 +02:00
commit c951baacf7
7 changed files with 224 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
*~
*.old

22
Dockerfile Normal file
View File

@ -0,0 +1,22 @@
# Rx3-Docker/Wine Docker Image
#-------------------------------------------------------------------------------
ARG IMG_FROM_URL="rx3-docker/x11-pulse:latest"
FROM ${IMG_FROM_URL}
ARG IMG_NAME
ARG IMG_NAME_FULL
ARG IMG_VERSION
ARG IMG_MAINTAINER
LABEL org.rx3.${IMG_NAME}.name=${IMG_NAME_FULL}
LABEL org.rx3.${IMG_NAME}.version=${IMG_VERSION}
LABEL org.rx3.${IMG_NAME}.maintainer=${IMG_MAINTAINER}
LABEL maintainer=${IMG_MAINTAINER}
RUN urpmi.update -a \
&& urpmi --force lib64opencl1-2.3.1 wine32 wine64

21
ReadMe.txt Normal file
View File

@ -0,0 +1,21 @@
Welcome to RX3-Docker/Wine docker image!
This is project aims to build a Wine + X11 + Pulse docker image able to run any windows graphic & audio application isolated.
Features:
- Curtently based on rx3-docker/x11-pulse:1.2.2-mga9 image.
Usage:
./bin/run.sh [-h] [-i] <Application Dir> <Application Exec> [Args...]
Enjoy it!
Your Rx3 Team.
--
arnaud@rx3.net
https://git.rx3.org/gitea/rx3-docker/wine

6
ReleaseNotes.txt Normal file
View File

@ -0,0 +1,6 @@
------------------------------------------------------------------------------------------------------------------------------------
Rx3-Docker/Wine V 1.0.0 - A. GIBERT - 2025/04/13
------------------------------------------------------------------------------------------------------------------------------------
- Initial relase,
- Based on rx3-docker/x11-pulse:1.2.2-mga9 image.

46
bin/run.sh Executable file
View File

@ -0,0 +1,46 @@
#!/bin/bash -x
set -o errexit
APPL_HOME_DIR="$(dirname "$(dirname "$0")")"
#-------------------------------------------------------------------------------
if [[ "$1" == "-h" ]]
then
echo "usage: run.sh [-h] [-i] <Application_Dir> <Application_Exec> [Args...]"
echo "with -i enabling internet access."
exit 0
fi
if [[ "$1" == "-i" ]]
then
shift;
export APPL_NETWORK="internet"
else
export APPL_NETWORK="no-internet"
fi
export APPL_DIR="$1"
shift
export APPL_NAME="$1"
shift
export USER_ID=$(id -u)
export GROUP_ID=$(id -g)
export GROUP_NAME=$(id -gn)
cd "${APPL_HOME_DIR}"
sbin/docker_mk_env
docker compose run --rm wine /usr/local/sbin/user_add_exec ${USER_ID} ${USER} ${HOME} ${GROUP_ID} ${GROUP_NAME} ${APPL_DIR}/${APPL_NAME} $*
docker compose down

68
compose.yaml Normal file
View File

@ -0,0 +1,68 @@
# Rx3-Docker/X11-Pulse Docker Image
#-------------------------------------------------------------------------------
name: ${WN_IMG_NAME}
services:
#-------------------------------------------------------------------------------
wine:
container_name: ${WN_HOST_NAME}
hostname: ${WN_HOST_NAME}
image: ${WN_IMG_URL}
build:
context: .
args:
IMG_NAME: ${WN_IMG_NAME}
IMG_NAME_FULL: ${WN_IMG_NAME_FULL}
IMG_VERSION: ${WN_IMG_VERSION}
IMG_MAINTAINER: ${WN_IMG_MAINTAINER}
IMG_FROM_URL: ${WN_IMG_FROM_URL}
restart: unless-stopped
environment:
DISPLAY: ":0"
volumes:
# - home_dir:/home
- /opt/vm/home:/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_DIR}"
target: "${APPL_DIR}"
networks:
- ${APPL_NETWORK}
volumes:
home_dir:
external: true
#-------------------------------------------------------------------------------
networks:
internet:
name: ${NETWORK_NAME}-internet
driver: bridge
internal: false # Allow internet access
driver_opts:
com.docker.network.bridge.name: ${NETWORK_IF_NAME}
no-internet:
name: ${NETWORK_NAME}-no-internet
driver: bridge
internal: true # Block internet access
driver_opts:
com.docker.network.bridge.name: ${NETWORK_IF_NAME}

59
env.dist Normal file
View File

@ -0,0 +1,59 @@
# Rx3-Docker/Wine Docker Image
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
# Global Settings
#-------------------------------------------------------------------------------
ORG_NAME="rx3-docker"
ORG_REGISTRY="docker.xor.rx3:5000"
ORG_MAINTAINER='"Arnaud G. GIBERT" <arnaud@rx3.net>'
ORG_URL_PREFIX="${ORG_REGISTRY}/${ORG_NAME}"
#-------------------------------------------------------------------------------
# Image Settings
#-------------------------------------------------------------------------------
APPL_NAME="wine"
APPL_NAME_FULL="Wine Docker Image"
APPL_NAME_SHORT="wine"
APPL_VERSION="1.0.0"
HOST_NAME_PREFIX=${APPL_NAME_SHORT}${APPL_SUFFIX}
PORT_ENV_OFFSET=0
PORT_SV_INT=9001
PORT_SV_OFFSET=1000
NETWORK_NAME=${HOST_NAME_PREFIX}
NETWORK_IF_NAME=br-${NETWORK_NAME}
DOCKER_TOOLS_DEBUG=FALSE
DOCKER_TOOLS_VOLUME=SINGLE
#DOCKER_TOOLS_VOLUME=MIXED
#DOCKER_TOOLS_VOLUME=MERGED
#DOCKER_TOOLS_VOLUME=SPLIT
#DOCKER_TOOLS_EXEPTION_LIBS="postgres:pgsql"
#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+---------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+
# | Variable | Service | Target Image | From Image | Module | Main Port | Admin Port | User | Group |
# | Prefix | Name | URL Prefix | Name | Name Full | Version | URL Prefix | Name | Version | Name | Version | Ext | Int | Ext | Int | Name / Id | Name / Id |
#------------------+----------+--------------------------+--------------------+------------------+-------------------------------+---------------------+--------------------+---------------+------------+--------------+------------+-------+-------+-------+-------+--------------+--------------+
docker_service_add WN wine ${ORG_URL_PREFIX} - "Rx3-Docker/Wine" ${APPL_VERSION}-mga9 ${ORG_URL_PREFIX} x11-pulse 1.2.2-mga9 - - - - - - - -
#-------------------------------------------------------------------------------
# User Settings (overwrited at run time)
#-------------------------------------------------------------------------------
USER_ID=""
APPL_DIR=""
APPL_NETWORK="no-internet"