From cc4c950b92f9030afbcc100f1db0bd93a78def63 Mon Sep 17 00:00:00 2001 From: Thilo Graf Date: Thu, 11 Apr 2024 18:32:39 +0200 Subject: [PATCH] Standardize PATH during build - Introduced a standard PATH environment variable definition during the image build phase to ensure consistency across different build environments. - Removed redundant PATH argument definition to streamline Dockerfile and related configurations. - Adjusted volume bindings in docker-compose.yml and Dockerfile to support a new directory structure for binaries. - Enabled PATH environment variable pass-through in docker-compose.yml to ensure custom binary paths are accessible. - Minor adjustments to script generation and directory initialization to enhance container setup processes. This update optimizes the build environment and improves container configuration by ensuring that essential tools and custom binaries are readily available in the PATH across all stages of the build and execution process. --- Dockerfile | 11 ++++++----- create-env.sh | 10 ++++++---- docker-compose.yml | 9 ++++----- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index fe206dd..d5b2f08 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,6 +2,9 @@ # FROM debian:bullseye-slim FROM dbt1/git-tools +### Path only valid while build base image +ENV PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" + ### Install the required tools and packages RUN apt-get update && apt-get install -y --no-install-recommends \ bash \ @@ -77,7 +80,6 @@ ARG HOST_PREFIX=${HOST_PREFIX} ARG LOCALE_LANG=${LOCALE_LANG} ARG LOCAL_HOSTNAME=${LOCAL_HOSTNAME} ARG NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} -ARG PATH=${PATH} ARG QT_QUICK_BACKEND=${QT_QUICK_BACKEND} ARG QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION} ARG START_PATH=${START_PATH} @@ -133,7 +135,6 @@ ENV NO_AT_BRIDGE=1 ## Create some basic directories and permissions for X-Server RUN mkdir -p $XDG_RUNTIME_DIR && chown -R root:root $XDG_RUNTIME_DIR && chmod 0700 $XDG_RUNTIME_DIR -### Terminal ## Copy welcome message ENV BANNER_FILE=/etc/welcome.txt COPY terminal-splash.txt /etc/terminal-splash.txt @@ -172,14 +173,14 @@ RUN mkdir -p /etc/service/lighttpd && \ echo "exec lighttpd -D -f ${LIGHTTPD_STD_CONFIG_FILE}" >> ${LIGHTTPD_RUN} && \ chmod 755 ${LIGHTTPD_RUN} -### generate content of start script ### +### Start generate content of start script ### ENV CONTAINER_INIT_SCRIPT="/usr/local/bin/init.sh" RUN echo "#!/bin/bash" > ${CONTAINER_INIT_SCRIPT} && \ echo "echo 'Initialize tuxbox-builder container...'" >> ${CONTAINER_INIT_SCRIPT} && \ - echo "chown -R ${USER}:${USER_GROUP} ${USER_DIR} ${USER_VOLUME_DATADIR}" >> ${CONTAINER_INIT_SCRIPT} + echo "chown -R ${USER}:${USER_GROUP} ${USER_DIR} ${USER_VOLUME_DATADIR}" >> ${CONTAINER_INIT_SCRIPT} && \ + echo "usermod -aG sudo $USER" >> ${CONTAINER_INIT_SCRIPT} ## prepare git config -#COPY .gitconfig ${USER_DIR}/.gitconfig RUN mkdir -p ${XDG_CONFIG_HOME}/git && \ echo "echo -e '[user]\\n\\temail = ${GIT_EMAIL}\\n\\tname = ${GIT_USER}' > ${XDG_CONFIG_HOME}/git/config" >> ${CONTAINER_INIT_SCRIPT} && \ echo "chown -R ${USER}:${USER_GROUP} ${XDG_CONFIG_HOME}/git" >> ${CONTAINER_INIT_SCRIPT} && \ diff --git a/create-env.sh b/create-env.sh index 532d14c..67c20b8 100755 --- a/create-env.sh +++ b/create-env.sh @@ -9,14 +9,15 @@ TB_BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S') USER=$(whoami) USER_ID=$(id -u) USER_GROUP_ID=$(id -g) -USER_DIR=${HOME} +USER_DIR="${HOME}" HOST_PREFIX=tuxbox BUILDENV_PREFIX="buildenv" LOCAL_HOSTNAME=$(hostname) ENABLE_UI_TOOLS="false" -USER_VOLUME_WORKDIR=${USER_DIR}/${HOST_PREFIX} +USER_VOLUME_BINDIR="${USER_DIR}/bin" +USER_VOLUME_WORKDIR="${USER_DIR}/${HOST_PREFIX}" +USER_VOLUME_WORKBINDIR="${USER_VOLUME_WORKDIR}/bin" USER_VOLUME_DATADIR="${USER_VOLUME_WORKDIR}/.data" -TB_PATH="${USER_VOLUME_WORKDIR}/bin:${USER_DIR}/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" HISTFILE_NAME=".bash_history" HISTFILE="${USER_VOLUME_DATADIR}/${HISTFILE_NAME}" @@ -80,7 +81,6 @@ LC_ALL=${LANG} LOCALE_LANG=${LANG} LOCAL_HOSTNAME=${LOCAL_HOSTNAME} NVIDIA_VISIBLE_DEVICES=all -PATH=${TB_PATH} QT_QUICK_BACKEND=software QT_XCB_GL_INTEGRATION=xcb_egl START_PATH=${USER_VOLUME_WORKDIR}/${BUILDENV_PREFIX} @@ -94,6 +94,8 @@ USER_ID=${USER_ID} USER_PASSWORD=${USER} USER_VOLUME_WORKDIR=${USER_VOLUME_WORKDIR} USER_VOLUME_DATADIR=${USER_VOLUME_DATADIR} +USER_VOLUME_BINDIR=${USER_VOLUME_BINDIR} +USER_VOLUME_WORKBINDIR=${USER_VOLUME_WORKBINDIR} TB_VERSION=${TB_VERSION} XDG_CONFIG_HOME=/home XDG_RUNTIME_DIR=/tmp/runtime-root diff --git a/docker-compose.yml b/docker-compose.yml index 5bb563c..12014e7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -4,8 +4,8 @@ services: tuxbox-build: container_name: tuxbox-build image: tuxbox-build -# environment: -# - BUILDENV_VERSION=3.2.4 + environment: + - PATH=${USER_VOLUME_WORKBINDIR}:${USER_VOLUME_BINDIR}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin env_file: - .env build: @@ -25,7 +25,6 @@ services: - LOCALE_LANG=${LOCALE_LANG} - LOCAL_HOSTNAME=${LOCAL_HOSTNAME} - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} - #- PATH=${PATH} - QT_QUICK_BACKEND=${QT_QUICK_BACKEND} - QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION} - START_PATH=${START_PATH} @@ -59,8 +58,8 @@ services: - ${USER_DIR}/sstate-cache:${USER_DIR}/sstate-cache - ${USER_DIR}/Archive:${USER_DIR}/Archive - ${USER_DIR}/.ccache:${USER_DIR}/.ccache - - ${USER_DIR}/bin:${USER_DIR}/bin - - ${USER_VOLUME_WORKDIR}/bin:${USER_VOLUME_WORKDIR}/bin + - ${USER_VOLUME_BINDIR}:${USER_DIR}/bin + - ${USER_VOLUME_WORKBINDIR}:${USER_VOLUME_WORKDIR}/bin - ${USER_DIR}/.ssh:${USER_DIR}/.ssh - ${USER_VOLUME_DATADIR}:/data - ${USER_VOLUME_WORKDIR}/.config:/config