|
- #jinja2: lstrip_blocks: "True"
- [Unit]
- Description=Matrix Postgres server
- After=docker.service
- Requires=docker.service
- DefaultDependencies=no
-
- [Service]
- Type=simple
- Environment="HOME={{ matrix_systemd_unit_home_path }}"
- ExecStartPre=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} kill matrix-postgres 2>/dev/null'
- ExecStartPre=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} rm matrix-postgres 2>/dev/null'
-
- # We need /dev/shm to be larger than the default to allow VACUUM to work.
- # See:
- # - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1362
- # - https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/1268
- ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-postgres \
- --log-driver=none \
- --user={{ matrix_user_uid }}:{{ matrix_user_gid }} \
- --cap-drop=ALL \
- --read-only \
- --tmpfs=/tmp:rw,noexec,nosuid,size=100m \
- --tmpfs=/run/postgresql:rw,noexec,nosuid,size=100m \
- --shm-size=256m \
- --network={{ matrix_docker_network }} \
- {% if matrix_postgres_container_postgres_bind_port %}
- -p {{ matrix_postgres_container_postgres_bind_port }}:5432 \
- {% endif %}
- --env-file={{ matrix_postgres_base_path }}/env-postgres-server \
- --mount type=bind,src={{ matrix_postgres_data_path }},dst=/var/lib/postgresql/data \
- --mount type=bind,src=/etc/passwd,dst=/etc/passwd,ro \
- {% for arg in matrix_postgres_container_extra_arguments %}
- {{ arg }} \
- {% endfor %}
- {{ matrix_postgres_docker_image_to_use }} \
- postgres {{ matrix_postgres_process_extra_arguments|join(' ') }}
-
- ExecStop=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} kill matrix-postgres 2>/dev/null'
- ExecStop=-{{ matrix_host_command_sh }} -c '{{ matrix_host_command_docker }} rm matrix-postgres 2>/dev/null'
- Restart=always
- RestartSec=30
- SyslogIdentifier=matrix-postgres
-
- [Install]
- WantedBy=multi-user.target
|