Following up on a previous post about how to test systemd services with docker-compose on Ubuntu, I spent some time recently trying to do the same thing with a few other Linux distributions. I was able to get the same tricks to work on these other distributions:
- Amazon Linux
- Arch
- CentOS
- Debian
- Fedora
- openSUSE
- RHEL
A few of those distros required an additional tweak, however.
One more tmpfs directory for Arch and Fedora
For Arch and Fedora, I had to do one more thing: add /tmp as a tmpfs mount.
So the docker-compose.yml file for those distros should look like this:
version: '3'
services:
my_test_container:
build: .
image: my_test_image
tmpfs:
- /run
- /run/lock
- /tmp
volumes:
- /sys/fs/cgroup:/sys/fs/cgroup:ro
Or when running as a regular docker command, start the container like this:
docker run \
--tmpfs /run --tmpfs /run/lock --tmpfs /tmp \
--volume /sys/fs/cgroup:/sys/fs/cgroup:ro \
--detach --rm \
--name my_test_container my_test_image
Different init script location for openSUSE
For openSUSE, the systemd init script is located at /usr/lib/systemd/systemd instead of just /lib/systemd/systemd. So the Dockerfile I used for it looks like this:
FROM opensuse/leap:15
RUN zypper install -y systemd
CMD ["/usr/lib/systemd/systemd"]
No comments:
Post a Comment