Configure Vagrant to use qmk_base_container (#6194)
	
		
	
				
					
				
			* Initial conversion of vagrant to use qmkfm/base_container * Fix vagrant when using docker provider * Workaround for VirtualBox VM restarts * Generalise Vagrant docs slightly and add FAQpull/6512/head
							parent
							
								
									4083565334
								
							
						
					
					
						commit
						3acf64b708
					
				@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					FROM qmkfm/base_container
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Basic upgrades; install sudo and SSH.
 | 
				
			||||||
 | 
					RUN apt-get update && apt-get install --no-install-recommends -y \
 | 
				
			||||||
 | 
					        sudo \
 | 
				
			||||||
 | 
					        openssh-server \
 | 
				
			||||||
 | 
					    && rm -rf /var/lib/apt/lists/*
 | 
				
			||||||
 | 
					RUN mkdir /var/run/sshd
 | 
				
			||||||
 | 
					RUN sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
 | 
				
			||||||
 | 
					RUN echo 'UseDNS no' >> /etc/ssh/sshd_config
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Remove the policy file once we're finished installing software.
 | 
				
			||||||
 | 
					# This allows invoke-rc.d and friends to work as expected.
 | 
				
			||||||
 | 
					RUN rm /usr/sbin/policy-rc.d
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Add the Vagrant user and necessary passwords.
 | 
				
			||||||
 | 
					RUN groupadd vagrant
 | 
				
			||||||
 | 
					RUN useradd -c "Vagrant" -g vagrant -d /home/vagrant -m -s /bin/bash vagrant
 | 
				
			||||||
 | 
					RUN echo 'root:vagrant' | chpasswd
 | 
				
			||||||
 | 
					RUN echo 'vagrant:vagrant' | chpasswd
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Allow the vagrant user to use sudo without a password.
 | 
				
			||||||
 | 
					RUN echo 'vagrant ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/vagrant
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Install Vagrant's insecure public key so provisioning and 'vagrant ssh' work.
 | 
				
			||||||
 | 
					RUN mkdir /home/vagrant/.ssh
 | 
				
			||||||
 | 
					ADD https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant.pub /home/vagrant/.ssh/authorized_keys
 | 
				
			||||||
 | 
					RUN chmod 0600 /home/vagrant/.ssh/authorized_keys
 | 
				
			||||||
 | 
					RUN chown -R vagrant:vagrant /home/vagrant/.ssh
 | 
				
			||||||
 | 
					RUN chmod 0700 /home/vagrant/.ssh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					EXPOSE 22
 | 
				
			||||||
 | 
					CMD ["/usr/sbin/sshd", "-D"]
 | 
				
			||||||
@ -0,0 +1,12 @@
 | 
				
			|||||||
 | 
					# QMK Vagrant Utilities
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## Dockerfile
 | 
				
			||||||
 | 
					Vagrant-friendly `qmkfm/base_container`.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					In order for the Docker provider and `vagrant ssh` to function the container has a few extra requirements.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					* vagrant user
 | 
				
			||||||
 | 
					* ssh server
 | 
				
			||||||
 | 
					  * configured with expected public key
 | 
				
			||||||
 | 
					* sudo
 | 
				
			||||||
 | 
					  * passwordless for vagrant user
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue