Files
docker-buildenv/docker-compose.yml
Thilo Graf 7ab5a410d3 refactor: major overhaul and cleanup of the build environment
- Removed `.env.sample` and improved `.env` handling
- Deleted `translate.py` and replaced it with `translate-md.py`
- Refactored `readme.yml` to enhance translation and tagging workflow
- Updated `.gitignore` with new exclusions
- Major restructuring of `Dockerfile`, including improved ENV variables and layout
- Extended `create-env.sh` with interactive prompts and validation
- Improved error handling and structure in `docker-compose-wrapper`
- Expanded `docker-compose.yml` with new environment variables and network settings
- Moved and updated `init.sh`, `.bashrc`, and other files to `files/` directory
- Added new scripts: `show-env.sh` for better diagnostics and `terminal-splash.txt` for enhanced display

These changes optimize the build environment for improved stability and flexibility.
2025-02-11 20:27:12 +01:00

119 lines
3.9 KiB
YAML

services:
tuxbox-build:
container_name: tuxbox-build
build:
context: .
dockerfile: Dockerfile
args:
DOCKER_BUILDENV_VERSION: ${DOCKER_BUILDENV_VERSION}
DOCKER_BUILDENV_GIT_URL: $DOCKER_BUILDENV_GIT_URL
PATH: "${USER_VOLUME_WORKDIR}/bin:${USER_VOLUME_BINDIR}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
BUILDENV_GIT_URL: ${BUILDENV_GIT_URL}
BUILDENV_PREFIX: ${BUILDENV_PREFIX}
# Host user and group
USER_NAME: ${USER_NAME}
USER_ID: ${USER_ID}
USER_GROUP: ${USER_GROUP}
USER_GROUP_ID: ${USER_GROUP_ID}
USER_PASSWORD: ${USER_PASSWORD}
USER_DIR: ${USER_DIR}
# More Build-Args
DISPLAY: ${DISPLAY}
ENABLE_UI_TOOLS: ${ENABLE_UI_TOOLS}
GIT_EMAIL: ${GIT_EMAIL}
GIT_USER: ${GIT_USER}
HISTFILE_NAME: ${HISTFILE_NAME}
HISTFILE: ${HISTFILE}
BUILDENV_INSTALL_PREFIX: ${BUILDENV_INSTALL_PREFIX}
LOCAL_HOSTNAME: ${LOCAL_HOSTNAME}
LOCALE_LANG: ${LOCALE_LANG}
TZ: ${TZ}
TERM: ${TERM}
NVIDIA_VISIBLE_DEVICES: ${NVIDIA_VISIBLE_DEVICES}
QT_QUICK_BACKEND: ${QT_QUICK_BACKEND}
QT_XCB_GL_INTEGRATION: ${QT_XCB_GL_INTEGRATION}
USER_VOLUME_WORKDIR: ${USER_VOLUME_WORKDIR}
USER_VOLUME_DATADIR: ${USER_VOLUME_DATADIR}
START_PATH: ${START_PATH}
WWW_DOCDIR: ${WWW_DOCDIR}
EXPLORER_ENABLE: ${EXPLORER_ENABLE}
EXPLORER_GIT_URL: ${EXPLORER_GIT_URL}
XDG_CONFIG_HOME: ${XDG_CONFIG_HOME}
XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR}
image: tuxbox-build
environment:
DOCKER_BUILDENV_VERSION: ${DOCKER_BUILDENV_VERSION}
DOCKER_BUILDENV_GIT_URL: $DOCKER_BUILDENV_GIT_URL
BUILDENV_GIT_URL: ${BUILDENV_GIT_URL}
BUILDENV_PREFIX: ${BUILDENV_PREFIX}
PATH: "${USER_VOLUME_WORKDIR}/bin:${USER_VOLUME_BINDIR}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
DISPLAY: ${DISPLAY}
ENABLE_UI_TOOLS: ${ENABLE_UI_TOOLS}
GIT_EMAIL: ${GIT_EMAIL}
GIT_USER: ${GIT_USER}
HISTFILE_NAME: ${HISTFILE_NAME}
HISTFILE: ${HISTFILE}
BUILDENV_INSTALL_PREFIX: ${BUILDENV_INSTALL_PREFIX}
LOCAL_HOSTNAME: ${LOCAL_HOSTNAME}
LOCALE_LANG: ${LOCALE_LANG}
TZ: ${TZ}
TERM: ${TERM}
NVIDIA_VISIBLE_DEVICES: ${NVIDIA_VISIBLE_DEVICES}
QT_QUICK_BACKEND: ${QT_QUICK_BACKEND}
QT_XCB_GL_INTEGRATION: ${QT_XCB_GL_INTEGRATION}
USER: ${USER_NAME}
USER_ID: ${USER_ID}
USER_GROUP: ${USER_GROUP}
USER_GROUP_ID: ${USER_GROUP_ID}
USER_PASSWORD: ${USER_PASSWORD}
USER_DIR: ${USER_DIR}
USER_VOLUME_WORKDIR: ${USER_VOLUME_WORKDIR}
USER_VOLUME_DATADIR: ${USER_VOLUME_DATADIR}
START_PATH: ${START_PATH}
WWW_DOCDIR: ${WWW_DOCDIR}
EXPLORER_ENABLE: ${EXPLORER_ENABLE}
EXPLORER_GIT_URL: ${EXPLORER_GIT_URL}
XDG_CONFIG_HOME: ${XDG_CONFIG_HOME}
XDG_RUNTIME_DIR: ${XDG_RUNTIME_DIR}
volumes:
- ${USER_VOLUME_WORKDIR}:${USER_VOLUME_WORKDIR}
- ${USER_VOLUME_BINDIR}:${USER_DIR}/bin
- ${USER_VOLUME_DATADIR}:/data
- ${USER_VOLUME_WORKDIR}/.config:/config
- ${USER_VOLUME_WORKDIR}/.config/git/config:${XDG_CONFIG_HOME}/git
- ${USER_DIR}/sstate-cache:${USER_DIR}/sstate-cache
- ${USER_DIR}/Archive:${USER_DIR}/Archive
- ${USER_DIR}/.ccache:${USER_DIR}/.ccache
- ${USER_DIR}/sources:${USER_DIR}/sources
- ${USER_DIR}/.ssh:${USER_DIR}/.ssh
# Optional for UI tools
- /tmp/.X11-unix:/tmp/.X11-unix
- /usr/lib/x86_64-linux-gnu/mesa:/usr/lib/x86_64-linux-gnu/mesa
devices:
- /dev/dri:/dev/dri # For GPU acceleration if needed
ports:
- "8080:80" # Webserver
- "222:22" # SSH
tty: true
working_dir: /
cap_add:
- SYS_ADMIN
restart: unless-stopped
networks:
default:
driver: bridge