Как поставлять ssl сертификаты для docker image nginx в gitlab ci?
Сертификаты не должны быть частью docker image, и должны монтироваться снаружи. Тогда обновление сертификата не будет требовать нового билда продукта.
Прокидывать снаружи их можно через mount
Тогда обновил сертификат на маунте и перезапустил контейнер.
Если жить в кубере/опенщифте - там сертификат можно в секрете хранить и монтировать как файл.
Собственно, еще как вариант - сохранять сертификаты на какой-то носитель или в cloud secret, к которому дать доступ nginx только контейнеру.  Создать в контейнере bash script, кот будет запускаться до запуска ngixn и подтягивать сертификаты с этого носителя

Например...
Dockerfile:

.....................................
.....................................
ENTRYPOINT ["/bin/bash", "/usr/local/bin/entrypoint.sh"]
CMD ["/bin/bash", "-c", "nginx -g 'daemon off;'; nginx -s reload;"]