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 FAQplanck_thk^2
parent
a32f7e1a25
commit
29e9caa82b
@ -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