| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  | FROM alpine:edge | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | LABEL author="Task Venture Capital GmbH <hello@task.vc>" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | WORKDIR /workspace | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Important environment variables | 
					
						
							|  |  |  | ENV NODE_VERSION_LTS="20.18.2" \ | 
					
						
							|  |  |  |     NVM_DIR="/usr/local/nvm" \ | 
					
						
							|  |  |  |     NVM_NODEJS_ORG_MIRROR="https://unofficial-builds.nodejs.org/download/release" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Install required packages for NVM and Node.js | 
					
						
							| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  | # Install Deno from Alpine community repository (native musl build) | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | RUN apk add --no-cache \ | 
					
						
							|  |  |  |     bash \ | 
					
						
							|  |  |  |     curl \ | 
					
						
							|  |  |  |     git \ | 
					
						
							|  |  |  |     ca-certificates \ | 
					
						
							|  |  |  |     unzip \ | 
					
						
							|  |  |  |     libstdc++ \ | 
					
						
							| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  |     deno | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | # Install NVM (latest version for better Alpine/musl support) | 
					
						
							|  |  |  | RUN mkdir -p $NVM_DIR && curl https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Make nvm available globally in all bash shells (interactive + non-interactive) | 
					
						
							|  |  |  | # IMPORTANT: Create /etc/bash.bashrc with nvm initialization | 
					
						
							|  |  |  | RUN printf '%s\n%s\n%s\n' \ | 
					
						
							|  |  |  |         'export NVM_DIR="/usr/local/nvm"' \ | 
					
						
							|  |  |  |         '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' \ | 
					
						
							|  |  |  |         '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"' \ | 
					
						
							|  |  |  |         > /etc/bash.bashrc | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Copy nvm wrapper scripts from support directory | 
					
						
							|  |  |  | COPY image_support_files/bash-with-nvm /usr/local/bin/bash-with-nvm | 
					
						
							|  |  |  | COPY image_support_files/docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh | 
					
						
							|  |  |  | RUN chmod +x /usr/local/bin/bash-with-nvm /usr/local/bin/docker-entrypoint.sh | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Use wrapper for RUN commands to enable nvm | 
					
						
							|  |  |  | SHELL ["/usr/local/bin/bash-with-nvm"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Enable nvm for runtime bash commands (CI/CD workflows) | 
					
						
							|  |  |  | ENV BASH_ENV=/etc/bash.bashrc | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  | # Install Node.js LTS via NVM (Deno already installed from Alpine repos) | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | RUN nvm install $NODE_VERSION_LTS \ | 
					
						
							|  |  |  |     && nvm alias default $NODE_VERSION_LTS \ | 
					
						
							| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  |     && nvm use default | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-10-26 14:22:02 +00:00
										 |  |  | ENV PATH="$NVM_DIR/versions/node/v$NODE_VERSION_LTS/bin:$PATH" | 
					
						
							| 
									
										
										
										
											2025-10-26 14:00:20 +00:00
										 |  |  | ENV NODE_PATH=$NVM_DIR/v$NODE_VERSION_LTS/lib/node_modules | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # Set entrypoint to make nvm available in all runtime contexts | 
					
						
							|  |  |  | ENTRYPOINT ["/usr/local/bin/docker-entrypoint.sh"] | 
					
						
							|  |  |  | CMD ["bash"] |