2021-11-08 22:12:57 +01:00
|
|
|
|
FROM debian:10
|
2019-05-20 06:07:25 +02:00
|
|
|
|
|
2021-11-08 22:12:57 +01:00
|
|
|
|
ARG DEBIAN_MIRROR
|
2019-05-29 03:58:11 +02:00
|
|
|
|
|
2019-05-20 06:07:25 +02:00
|
|
|
|
# Basic packages and dependencies of docker-systemctl-replacement
|
2021-04-30 21:57:25 +02:00
|
|
|
|
RUN echo locales locales/default_environment_locale select C.UTF-8 | debconf-set-selections \
|
|
|
|
|
&& echo locales locales/locales_to_be_generated select "C.UTF-8 UTF-8" | debconf-set-selections \
|
2021-11-08 22:12:57 +01:00
|
|
|
|
&& { [ ! "$DEBIAN_MIRROR" ] || sed -i "s|http://\(\w*\.\)*\.debian\.org/debian |$DEBIAN_MIRROR |" /etc/apt/sources.list; } \
|
|
|
|
|
&& apt-get update \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
&& apt-get install --no-install-recommends -y \
|
|
|
|
|
ca-certificates \
|
|
|
|
|
curl \
|
|
|
|
|
locales \
|
|
|
|
|
openssh-server \
|
|
|
|
|
python3 \
|
|
|
|
|
sudo \
|
|
|
|
|
systemd \
|
|
|
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
2019-05-28 04:21:51 +02:00
|
|
|
|
ARG VAGRANT_UID
|
|
|
|
|
|
2019-05-20 06:07:25 +02:00
|
|
|
|
RUN \
|
|
|
|
|
# We use https://github.com/gdraheim/docker-systemctl-replacement
|
2020-10-26 22:27:53 +01:00
|
|
|
|
# to make services we install like PostgreSQL, Redis, etc. normally
|
2019-05-20 06:07:25 +02:00
|
|
|
|
# managed by systemd start within Docker, which breaks normal
|
|
|
|
|
# operation of systemd.
|
|
|
|
|
dpkg-divert --add --rename /bin/systemctl \
|
2021-11-09 21:16:46 +01:00
|
|
|
|
&& curl -fLsS -o /bin/systemctl 'https://raw.githubusercontent.com/gdraheim/docker-systemctl-replacement/v1.5.4505/files/docker/systemctl3.py' \
|
|
|
|
|
&& echo '93006382a98aadfd2490e521824fc870759732ff80cd012ce0dfc70d4225c803 /bin/systemctl' | sha256sum -c \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
&& chmod +x /bin/systemctl \
|
|
|
|
|
&& ln -nsf /bin/true /usr/sbin/policy-rc.d \
|
|
|
|
|
&& mkdir -p /run/sshd \
|
|
|
|
|
# docker-systemctl-replacement doesn’t work with template units yet:
|
|
|
|
|
# https://github.com/gdraheim/docker-systemctl-replacement/issues/62
|
2021-11-08 22:12:57 +01:00
|
|
|
|
&& ln -ns /lib/systemd/system/postgresql@.service /etc/systemd/system/multi-user.target.wants/postgresql@11-main.service \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
# redis fails to start with the default configuration if IPv6 is disabled:
|
|
|
|
|
# https://github.com/antirez/redis/pull/5598
|
|
|
|
|
&& dpkg-divert --add --rename /etc/default/redis-server \
|
|
|
|
|
&& printf 'ULIMIT=65536\nDAEMON_ARGS="/etc/redis/redis.conf --bind 127.0.0.1"\n' > /etc/default/redis-server \
|
|
|
|
|
&& mkdir /etc/systemd/system/redis-server.service.d \
|
2019-06-01 10:06:13 +02:00
|
|
|
|
&& printf '[Service]\nExecStart=\nExecStart=/usr/bin/redis-server /etc/redis/redis.conf --bind 127.0.0.1\n' > /etc/systemd/system/redis-server.service.d/override.conf \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
# Set up the vagrant user and its SSH key (globally public)
|
2019-05-28 04:21:51 +02:00
|
|
|
|
&& useradd -ms /bin/bash -u "$VAGRANT_UID" vagrant \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
&& mkdir -m 700 ~vagrant/.ssh \
|
2021-07-13 21:00:50 +02:00
|
|
|
|
&& curl -fLsS -o ~vagrant/.ssh/authorized_keys 'https://raw.githubusercontent.com/hashicorp/vagrant/be7876d83644aa6bdf7f951592fdc681506bcbe6/keys/vagrant.pub' \
|
2019-05-20 06:07:25 +02:00
|
|
|
|
&& chown -R vagrant: ~vagrant/.ssh \
|
|
|
|
|
&& echo 'vagrant ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/vagrant
|
|
|
|
|
|
|
|
|
|
CMD ["/bin/systemctl"]
|
|
|
|
|
|
|
|
|
|
EXPOSE 22
|
|
|
|
|
EXPOSE 9991
|