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
							 |