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/6343/head
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