* Clean up node setup scripts for new CI boxes * Move files under ci directory * Set CUDA env var to setup cuda drivers * Fixup and add README * shellcheck * Apply review feedback, rename dir and setup files Co-authored-by: publish-docs.sh <maintainers@solana.com>
		
			
				
	
	
		
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| set -ex
 | |
| 
 | |
| [[ $(uname) = Linux ]] || exit 1
 | |
| [[ $USER = root ]] || exit 1
 | |
| 
 | |
| apt-get update
 | |
| apt-get install -y \
 | |
|   apt-transport-https \
 | |
|   ca-certificates \
 | |
|   curl \
 | |
|   software-properties-common \
 | |
| 
 | |
| curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -
 | |
| 
 | |
| add-apt-repository \
 | |
|   "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
 | |
| 
 | |
| apt-get update
 | |
| apt-get install -y docker-ce
 | |
| 
 | |
| cat > /lib/systemd/system/docker.service <<EOF
 | |
| [Unit]
 | |
| Description=Docker Application Container Engine
 | |
| Documentation=https://docs.docker.com
 | |
| BindsTo=containerd.service
 | |
| After=network-online.target firewalld.service
 | |
| Wants=network-online.target
 | |
| 
 | |
| [Service]
 | |
| Type=notify
 | |
| # the default is not to use systemd for cgroups because the delegate issues still
 | |
| # exists and systemd currently does not support the cgroup feature set required
 | |
| # for containers run by docker
 | |
| ExecStart=/usr/bin/dockerd -H unix://
 | |
| ExecReload=/bin/kill -s HUP '$MAINPID'
 | |
| TimeoutSec=0
 | |
| RestartSec=2
 | |
| Restart=always
 | |
| 
 | |
| # Note that StartLimit* options were moved from "Service" to "Unit" in systemd 229.
 | |
| # Both the old, and new location are accepted by systemd 229 and up, so using the old location
 | |
| # to make them work for either version of systemd.
 | |
| StartLimitBurst=3
 | |
| 
 | |
| # Note that StartLimitInterval was renamed to StartLimitIntervalSec in systemd 230.
 | |
| # Both the old, and new name are accepted by systemd 230 and up, so using the old name to make
 | |
| # this option work for either version of systemd.
 | |
| StartLimitInterval=60s
 | |
| 
 | |
| # Having non-zero Limit*s causes performance problems due to accounting overhead
 | |
| # in the kernel. We recommend using cgroups to do container-local accounting.
 | |
| LimitNOFILE=infinity
 | |
| LimitNPROC=infinity
 | |
| LimitCORE=infinity
 | |
| 
 | |
| # Comment TasksMax if your systemd version does not support it.
 | |
| # Only systemd 226 and above support this option.
 | |
| TasksMax=infinity
 | |
| 
 | |
| # set delegate yes so that systemd does not reset the cgroups of docker containers
 | |
| Delegate=yes
 | |
| 
 | |
| # kill only the docker process, not all processes in the cgroup
 | |
| KillMode=process
 | |
| 
 | |
| [Install]
 | |
| WantedBy=multi-user.target
 | |
| EOF
 | |
| 
 | |
| systemctl daemon-reload
 | |
| systemctl enable --now /lib/systemd/system/docker.service
 | |
| 
 | |
| # Grant the solana user access to docker
 | |
| if id solana; then
 | |
|   addgroup solana docker
 | |
| fi
 | |
| 
 | |
| docker run hello-world
 |