| @@ -23,6 +23,14 @@ matrix_conduit_systemd_required_services_list: ["docker.service"] | |||
| # List of systemd services that matrix-conduit.service wants | |||
| matrix_conduit_systemd_wanted_services_list: [] | |||
| # The base container network. It will be auto-created by this role if it doesn't exist already. | |||
| matrix_conduit_container_network: "{{ matrix_docker_network }}" | |||
| # A list of additional container networks that the container would be connected to. | |||
| # The role does not create these networks, so make sure they already exist. | |||
| # Use this to expose this container to another reverse proxy, which runs in a different container network. | |||
| matrix_conduit_container_additional_networks: [] | |||
| # Extra arguments for the Docker container | |||
| matrix_conduit_container_extra_arguments: [] | |||
| @@ -1,14 +1,4 @@ | |||
| --- | |||
| - name: Ensure Conduit Docker image is pulled | |||
| community.docker.docker_image: | |||
| name: "{{ matrix_conduit_docker_image }}" | |||
| source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | |||
| force_source: "{{ matrix_conduit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | |||
| force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduit_docker_image_force_pull }}" | |||
| register: result | |||
| retries: "{{ devture_playbook_help_container_retries_count }}" | |||
| delay: "{{ devture_playbook_help_container_retries_delay }}" | |||
| until: result is not failed | |||
| - name: Ensure Conduit config path exists | |||
| ansible.builtin.file: | |||
| @@ -34,6 +24,22 @@ | |||
| owner: "{{ matrix_user_username }}" | |||
| group: "{{ matrix_user_groupname }}" | |||
| - name: Ensure Conduit container network is created | |||
| community.general.docker_network: | |||
| name: "{{ matrix_conduit_container_network }}" | |||
| driver: bridge | |||
| - name: Ensure Conduit container image is pulled | |||
| community.docker.docker_image: | |||
| name: "{{ matrix_conduit_docker_image }}" | |||
| source: "{{ 'pull' if ansible_version.major > 2 or ansible_version.minor > 7 else omit }}" | |||
| force_source: "{{ matrix_conduit_docker_image_force_pull if ansible_version.major > 2 or ansible_version.minor >= 8 else omit }}" | |||
| force: "{{ omit if ansible_version.major > 2 or ansible_version.minor >= 8 else matrix_conduit_docker_image_force_pull }}" | |||
| register: result | |||
| retries: "{{ devture_playbook_help_container_retries_count }}" | |||
| delay: "{{ devture_playbook_help_container_retries_delay }}" | |||
| until: result is not failed | |||
| - name: Ensure matrix-conduit.service installed | |||
| ansible.builtin.template: | |||
| src: "{{ role_path }}/templates/conduit/systemd/matrix-conduit.service.j2" | |||
| @@ -12,13 +12,15 @@ Environment="HOME={{ devture_systemd_docker_base_systemd_unit_home_path }}" | |||
| ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} kill matrix-conduit 2>/dev/null || true' | |||
| ExecStartPre=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduit 2>/dev/null || true' | |||
| ExecStart={{ devture_systemd_docker_base_host_command_docker }} run --rm --name matrix-conduit \ | |||
| ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} create \ | |||
| --rm \ | |||
| --name=matrix-conduit \ | |||
| --log-driver=none \ | |||
| --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \ | |||
| --cap-drop=ALL \ | |||
| --read-only \ | |||
| --tmpfs=/tmp:rw,noexec,nosuid,size={{ matrix_conduit_tmp_directory_size_mb }}m \ | |||
| --network={{ matrix_docker_network }} \ | |||
| --network={{ matrix_conduit_container_network }} \ | |||
| --env CONDUIT_CONFIG=/etc/matrix-conduit/conduit.toml \ | |||
| --mount type=bind,src={{ matrix_conduit_data_path }},dst=/var/lib/matrix-conduit \ | |||
| --mount type=bind,src={{ matrix_conduit_config_path }},dst=/etc/matrix-conduit,ro \ | |||
| @@ -27,6 +29,12 @@ ExecStart={{ devture_systemd_docker_base_host_command_docker }} run --rm --name | |||
| {% endfor %} | |||
| {{ matrix_conduit_docker_image }} | |||
| {% for network in matrix_conduit_container_additional_networks %} | |||
| ExecStartPre={{ devture_systemd_docker_base_host_command_docker }} network connect {{ network }} matrix-conduit | |||
| {% endfor %} | |||
| ExecStart={{ devture_systemd_docker_base_host_command_docker }} start --attach matrix-conduit | |||
| ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} kill matrix-conduit 2>/dev/null || true' | |||
| ExecStop=-{{ devture_systemd_docker_base_host_command_sh }} -c '{{ devture_systemd_docker_base_host_command_docker }} rm matrix-conduit 2>/dev/null || true' | |||
| ExecReload={{ devture_systemd_docker_base_host_command_docker }} exec matrix-conduit /bin/sh -c 'kill -HUP 1' | |||