- Update ToolboxStack/output/toolbox-template/Dockerfile with latest container settings - Update ToolboxStack/output/toolbox-template/PROMPT with enhanced instructions - Update ToolboxStack/output/toolbox-template/SEED with updated seed data - Update ToolboxStack/output/toolbox-template/aqua.yaml with refined tool management - Update ToolboxStack/output/toolbox-template/build.sh with improved build process - Update ToolboxStack/output/toolbox-template/docker-compose.yml with enhanced service definitions - Update ToolboxStack/output/toolbox-template/release.sh with enhanced release process - Update ToolboxStack/output/toolbox-template/run.sh with improved runtime configuration This enhances the toolbox template for creating new developer environments.
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Docker
		
	
	
	
	
	
| # Extend from the toolbox-base image
 | |
| 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"] |