This also adjusts the unit.j2 template accordingly, as well as update documentation for the role. It also updates tests to cover more scenarios
3.1 KiB
Docker systemd service
This role lets you configure a docker container and run it as a systemd service on debian-based distributions. This role is heavily sourced from mhutter.docker-systemd-service, but aims at providing some of the missing features of said role.
Requirements
This roles assumes you have docker installed on the target host. You can use ednz_cloud.install_docker to do so.
Role Variables
Service configuration
docker_systemd_service_container_name: "My-Service"
The name that will be assigned to the container.
docker_systemd_service_image: # by default, not defined
The image (and optionally tag) to use for the service.
docker_systemd_service_start: true
Indicates whether the service should start after installation. Defaults to true
.
docker_systemd_service_systemd_unit_options: {}
Extra options to add to the [Unit]
section of the systemd unit file. Map of strings.
docker_systemd_service_systemd_service_options: {}
Extra options to add to the [Service]
section of the systemd unit file. Map of strings.
docker_systemd_service_name: "{{ docker_systemd_service_container_name }}_container"
The name of the systemd service to register.
Container configuration
docker_systemd_service_container_env: {}
A list of key/value pairs, that will be written to the environment file for the container.
docker_systemd_service_container_pull_image: true
Whether or not the role should pull the image during its run, prior to starting the service.
docker_systemd_service_container_pull_force_source: true
If docker_systemd_service_container_pull_image: true
, whether the pull you be executed at every run. See docker_image.force_source
docker_systemd_service_flags: []
This variable lets you pass whatever flags you need to the docker run command. It is a list, to which you can add multiple types of flags:
-
- key: value # will pass the flag --key "value" to the container. Example: - network: host
-
- simple_key # will pass the flag --simple_key to the container. Example: - privileged
-
- key: - value1 - value2 # will pass the flags --key "value1" --key "value2" to the container. Example: - volume: - /path/on/host:/path/on/container - /var/run/docker.sock:/var/run/docker.sock:ro
Dependencies
None.
Example Playbook
# calling the role inside a playbook with either the default or group_vars/host_vars
- hosts: servers
roles:
- ednz_cloud.docker_systemd_service
License
MIT / BSD
Author Information
This role was created by Bertrand Lanson in 2023.