commit c58e58929e35e2ed50965cadb6d25af3f1ca37e8 Author: Arnaud G. GIBERT Date: Sun Apr 13 11:29:31 2025 +0200 - Initial relase, - Based on rx3-docker/x11-pulse:1.2.2-mga9 image. diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..556bc65 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*~ +*.old diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4b6691a --- /dev/null +++ b/Dockerfile @@ -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 + diff --git a/ReadMe.txt b/ReadMe.txt new file mode 100644 index 0000000..cab7014 --- /dev/null +++ b/ReadMe.txt @@ -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] [Args...] + + +Enjoy it! + +Your Rx3 Team. + +-- +arnaud@rx3.net +https://git.rx3.org/gitea/rx3-docker/wine diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt new file mode 100644 index 0000000..e7f31f0 --- /dev/null +++ b/ReleaseNotes.txt @@ -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. diff --git a/bin/run.sh b/bin/run.sh new file mode 100755 index 0000000..c7e1a75 --- /dev/null +++ b/bin/run.sh @@ -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] [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 diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..4419bc8 --- /dev/null +++ b/compose.yaml @@ -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} diff --git a/env.dist b/env.dist new file mode 100644 index 0000000..d8fbb6f --- /dev/null +++ b/env.dist @@ -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" ' + +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"