You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							77 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							77 lines
						
					
					
						
							1.9 KiB
						
					
					
				| # RDMA Simulation Container with Soft-RoCE (RXE) | |
| # This container enables software RDMA over regular Ethernet | |
| 
 | |
| FROM ubuntu:22.04 | |
| 
 | |
| # Install RDMA and networking tools | |
| RUN apt-get update && apt-get install -y \ | |
|     # System utilities | |
|     sudo \ | |
|     # RDMA core libraries | |
|     libibverbs1 \ | |
|     libibverbs-dev \ | |
|     librdmacm1 \ | |
|     librdmacm-dev \ | |
|     rdma-core \ | |
|     ibverbs-utils \ | |
|     infiniband-diags \ | |
|     # Network tools   | |
|     iproute2 \ | |
|     iputils-ping \ | |
|     net-tools \ | |
|     # Build tools | |
|     build-essential \ | |
|     pkg-config \ | |
|     cmake \ | |
|     # UCX dependencies | |
|     libnuma1 \ | |
|     libnuma-dev \ | |
|     # UCX library (pre-built) - try to install but don't fail if not available | |
|     # libucx0 \ | |
|     # libucx-dev \ | |
|     # Debugging tools | |
|     strace \ | |
|     gdb \ | |
|     valgrind \ | |
|     # Utilities | |
|     curl \ | |
|     wget \ | |
|     vim \ | |
|     htop \ | |
|     && rm -rf /var/lib/apt/lists/* | |
| 
 | |
| # Try to install UCX tools (optional, may not be available in all repositories) | |
| RUN apt-get update && \ | |
|     (apt-get install -y ucx-tools || echo "UCX tools not available in repository") && \ | |
|     rm -rf /var/lib/apt/lists/* | |
| 
 | |
| # Create rdmauser for security (avoid conflict with system rdma group) | |
| RUN useradd -m -s /bin/bash -G sudo,rdma rdmauser && \ | |
|     echo "rdmauser ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers | |
| 
 | |
| # Create directories for RDMA setup | |
| RUN mkdir -p /opt/rdma-sim /var/log/rdma | |
| 
 | |
| # Copy RDMA simulation scripts | |
| COPY docker/scripts/setup-soft-roce.sh /opt/rdma-sim/ | |
| COPY docker/scripts/test-rdma.sh /opt/rdma-sim/ | |
| COPY docker/scripts/ucx-info.sh /opt/rdma-sim/ | |
| 
 | |
| # Make scripts executable | |
| RUN chmod +x /opt/rdma-sim/*.sh | |
| 
 | |
| # Set working directory | |
| WORKDIR /opt/rdma-sim | |
| 
 | |
| # Switch to rdmauser | |
| USER rdmauser | |
| 
 | |
| # Default command | |
| CMD ["/bin/bash"] | |
| 
 | |
| # Health check for RDMA devices | |
| HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ | |
|     CMD /opt/rdma-sim/test-rdma.sh || exit 1 | |
| 
 | |
| # Expose common RDMA ports | |
| EXPOSE 18515 4791 4792
 |