Для настройки автоматического обновления сертификатов и перезапуска контейнера Nginx в Docker Compose можно использовать инструменты для управления сертификатами, такие как certbot, и скрипты для перезапуска контейнера.
Вот пример конфигурации Docker Compose для такой настройки:
```
version: '3'
services:
nginx:
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./certs:/etc/nginx/certs
- ./nginx.conf:/etc/nginx/nginx.conf
command: /bin/bash -c "while :; do nginx -s reload; sleep 12h; done"
certbot:
image: certbot/certbot
volumes:
- ./certs:/etc/nginx/certs
- ./nginx.conf:/etc/nginx/nginx.conf
command: certbot renew --deploy-hook "docker-compose restart nginx"
```
В данном примере, у нас есть два сервиса: `nginx` и `certbot`. Сервис `nginx` запускает контейнер с Nginx, прокидывает порты 80 и 443, монтирует директорию с сертификатами и конфигурацией Nginx. Команда в параметре `command` перезапускает Nginx каждые 12 часов.
Сервис `certbot` запускает контейнер с certbot, который обновляет сертификаты с использованием команды `renew` и выполняет перезапуск контейнера Nginx после обновления.
При запуске Docker Compose с такой конфигурацией, сертификаты будут автоматически обновляться и контейнер Nginx будет перезапускаться после этого.