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.
This commit is contained in:
2024-04-11 18:32:39 +02:00
parent e33f5ae552
commit cc4c950b92
3 changed files with 16 additions and 14 deletions

View File

@@ -2,6 +2,9 @@
# FROM debian:bullseye-slim # FROM debian:bullseye-slim
FROM dbt1/git-tools 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 ### Install the required tools and packages
RUN apt-get update && apt-get install -y --no-install-recommends \ RUN apt-get update && apt-get install -y --no-install-recommends \
bash \ bash \
@@ -77,7 +80,6 @@ ARG HOST_PREFIX=${HOST_PREFIX}
ARG LOCALE_LANG=${LOCALE_LANG} ARG LOCALE_LANG=${LOCALE_LANG}
ARG LOCAL_HOSTNAME=${LOCAL_HOSTNAME} ARG LOCAL_HOSTNAME=${LOCAL_HOSTNAME}
ARG NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} ARG NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}
ARG PATH=${PATH}
ARG QT_QUICK_BACKEND=${QT_QUICK_BACKEND} ARG QT_QUICK_BACKEND=${QT_QUICK_BACKEND}
ARG QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION} ARG QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION}
ARG START_PATH=${START_PATH} ARG START_PATH=${START_PATH}
@@ -133,7 +135,6 @@ ENV NO_AT_BRIDGE=1
## Create some basic directories and permissions for X-Server ## 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 RUN mkdir -p $XDG_RUNTIME_DIR && chown -R root:root $XDG_RUNTIME_DIR && chmod 0700 $XDG_RUNTIME_DIR
### Terminal
## Copy welcome message ## Copy welcome message
ENV BANNER_FILE=/etc/welcome.txt ENV BANNER_FILE=/etc/welcome.txt
COPY terminal-splash.txt /etc/terminal-splash.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} && \ echo "exec lighttpd -D -f ${LIGHTTPD_STD_CONFIG_FILE}" >> ${LIGHTTPD_RUN} && \
chmod 755 ${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" ENV CONTAINER_INIT_SCRIPT="/usr/local/bin/init.sh"
RUN echo "#!/bin/bash" > ${CONTAINER_INIT_SCRIPT} && \ RUN echo "#!/bin/bash" > ${CONTAINER_INIT_SCRIPT} && \
echo "echo 'Initialize tuxbox-builder container...'" >> ${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 ## prepare git config
#COPY .gitconfig ${USER_DIR}/.gitconfig
RUN mkdir -p ${XDG_CONFIG_HOME}/git && \ 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 "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} && \ echo "chown -R ${USER}:${USER_GROUP} ${XDG_CONFIG_HOME}/git" >> ${CONTAINER_INIT_SCRIPT} && \

View File

@@ -9,14 +9,15 @@ TB_BUILD_TIME=$(date '+%Y-%m-%d %H:%M:%S')
USER=$(whoami) USER=$(whoami)
USER_ID=$(id -u) USER_ID=$(id -u)
USER_GROUP_ID=$(id -g) USER_GROUP_ID=$(id -g)
USER_DIR=${HOME} USER_DIR="${HOME}"
HOST_PREFIX=tuxbox HOST_PREFIX=tuxbox
BUILDENV_PREFIX="buildenv" BUILDENV_PREFIX="buildenv"
LOCAL_HOSTNAME=$(hostname) LOCAL_HOSTNAME=$(hostname)
ENABLE_UI_TOOLS="false" 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" 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_NAME=".bash_history"
HISTFILE="${USER_VOLUME_DATADIR}/${HISTFILE_NAME}" HISTFILE="${USER_VOLUME_DATADIR}/${HISTFILE_NAME}"
@@ -80,7 +81,6 @@ LC_ALL=${LANG}
LOCALE_LANG=${LANG} LOCALE_LANG=${LANG}
LOCAL_HOSTNAME=${LOCAL_HOSTNAME} LOCAL_HOSTNAME=${LOCAL_HOSTNAME}
NVIDIA_VISIBLE_DEVICES=all NVIDIA_VISIBLE_DEVICES=all
PATH=${TB_PATH}
QT_QUICK_BACKEND=software QT_QUICK_BACKEND=software
QT_XCB_GL_INTEGRATION=xcb_egl QT_XCB_GL_INTEGRATION=xcb_egl
START_PATH=${USER_VOLUME_WORKDIR}/${BUILDENV_PREFIX} START_PATH=${USER_VOLUME_WORKDIR}/${BUILDENV_PREFIX}
@@ -94,6 +94,8 @@ USER_ID=${USER_ID}
USER_PASSWORD=${USER} USER_PASSWORD=${USER}
USER_VOLUME_WORKDIR=${USER_VOLUME_WORKDIR} USER_VOLUME_WORKDIR=${USER_VOLUME_WORKDIR}
USER_VOLUME_DATADIR=${USER_VOLUME_DATADIR} USER_VOLUME_DATADIR=${USER_VOLUME_DATADIR}
USER_VOLUME_BINDIR=${USER_VOLUME_BINDIR}
USER_VOLUME_WORKBINDIR=${USER_VOLUME_WORKBINDIR}
TB_VERSION=${TB_VERSION} TB_VERSION=${TB_VERSION}
XDG_CONFIG_HOME=/home XDG_CONFIG_HOME=/home
XDG_RUNTIME_DIR=/tmp/runtime-root XDG_RUNTIME_DIR=/tmp/runtime-root

View File

@@ -4,8 +4,8 @@ services:
tuxbox-build: tuxbox-build:
container_name: tuxbox-build container_name: tuxbox-build
image: tuxbox-build image: tuxbox-build
# environment: environment:
# - BUILDENV_VERSION=3.2.4 - PATH=${USER_VOLUME_WORKBINDIR}:${USER_VOLUME_BINDIR}:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
env_file: env_file:
- .env - .env
build: build:
@@ -25,7 +25,6 @@ services:
- LOCALE_LANG=${LOCALE_LANG} - LOCALE_LANG=${LOCALE_LANG}
- LOCAL_HOSTNAME=${LOCAL_HOSTNAME} - LOCAL_HOSTNAME=${LOCAL_HOSTNAME}
- NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES}
#- PATH=${PATH}
- QT_QUICK_BACKEND=${QT_QUICK_BACKEND} - QT_QUICK_BACKEND=${QT_QUICK_BACKEND}
- QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION} - QT_XCB_GL_INTEGRATION=${QT_XCB_GL_INTEGRATION}
- START_PATH=${START_PATH} - START_PATH=${START_PATH}
@@ -59,8 +58,8 @@ services:
- ${USER_DIR}/sstate-cache:${USER_DIR}/sstate-cache - ${USER_DIR}/sstate-cache:${USER_DIR}/sstate-cache
- ${USER_DIR}/Archive:${USER_DIR}/Archive - ${USER_DIR}/Archive:${USER_DIR}/Archive
- ${USER_DIR}/.ccache:${USER_DIR}/.ccache - ${USER_DIR}/.ccache:${USER_DIR}/.ccache
- ${USER_DIR}/bin:${USER_DIR}/bin - ${USER_VOLUME_BINDIR}:${USER_DIR}/bin
- ${USER_VOLUME_WORKDIR}/bin:${USER_VOLUME_WORKDIR}/bin - ${USER_VOLUME_WORKBINDIR}:${USER_VOLUME_WORKDIR}/bin
- ${USER_DIR}/.ssh:${USER_DIR}/.ssh - ${USER_DIR}/.ssh:${USER_DIR}/.ssh
- ${USER_VOLUME_DATADIR}:/data - ${USER_VOLUME_DATADIR}:/data
- ${USER_VOLUME_WORKDIR}/.config:/config - ${USER_VOLUME_WORKDIR}/.config:/config