\n- Updated Dockerfiles in both toolbox-base and toolbox-template - Modified build scripts and docker-compose configurations - Added new audit tools and documentation files - Created new toolbox-DocStack and toolbox-QADocker implementations - Updated README and maintenance documentation
48 lines
1.8 KiB
Docker
48 lines
1.8 KiB
Docker
# Extend from the toolbox-base image
|
|
# NOTE: Always use the full image name to ensure compatibility in standalone builds
|
|
FROM tsysdevstack-toolboxstack-toolbox-base:release-current
|
|
|
|
# Set build arguments (these can be overridden at build time)
|
|
ARG USER_ID=1000
|
|
ARG GROUP_ID=1000
|
|
ARG USERNAME=toolbox
|
|
|
|
# Ensure the non-root user exists with the correct UID/GID
|
|
RUN if getent passwd "${USER_ID}" >/dev/null; then \
|
|
existing_user="$(getent passwd "${USER_ID}" | cut -d: -f1)"; \
|
|
userdel --remove "${existing_user}" 2>/dev/null || true; \
|
|
fi \
|
|
&& if ! getent group "${GROUP_ID}" >/dev/null; then \
|
|
groupadd --gid "${GROUP_ID}" "${USERNAME}"; \
|
|
fi \
|
|
&& useradd --uid "${USER_ID}" --gid "${GROUP_ID}" --shell /usr/bin/zsh --create-home "${USERNAME}"
|
|
|
|
# Install toolbox-specific packages here
|
|
# Example:
|
|
# RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
# specific-package \
|
|
# && apt-get clean \
|
|
# && rm -rf /var/lib/apt/lists/*
|
|
|
|
# Install toolbox-specific aqua packages here
|
|
# Example:
|
|
# COPY aqua.yaml /tmp/aqua.yaml
|
|
# RUN chown "${USER_ID}:${GROUP_ID}" /tmp/aqua.yaml \
|
|
# && su - "${USERNAME}" -c 'mkdir -p ~/.config/aquaproj-aqua' \
|
|
# && su - "${USERNAME}" -c 'cp /tmp/aqua.yaml ~/.config/aquaproj-aqua/aqua.yaml' \
|
|
# && AQUA_GLOBAL_CONFIG=/tmp/aqua.yaml aqua install \
|
|
# && su - "${USERNAME}" -c 'AQUA_GLOBAL_CONFIG=~/.config/aquaproj-aqua/aqua.yaml aqua install'
|
|
|
|
# Install toolbox-specific npm packages here
|
|
# Example:
|
|
# RUN mise exec -- npm install -g @scope/package@version
|
|
|
|
# Remove sudo to ensure no root escalation is possible at runtime
|
|
RUN apt-get remove -y sudo 2>/dev/null || true && apt-get autoremove -y 2>/dev/null || true && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
|
|
|
|
# Switch to the non-root user
|
|
USER ${USERNAME}
|
|
WORKDIR /workspace
|
|
|
|
# Default command
|
|
CMD ["/usr/bin/zsh"] |