I can't talk for the original poster, but I also deploy containers from Gitlab Registry via Gitlab CI pipelines and just use the standard docker swarm commands. So updating the image digest (version) of a service is as simple as running a shell command in a job in a deploy stage in your gitlab ci pipeline:
docker service update --image <some-image:version> --with-registry-auth <some-service>
Simplest example would be a job definition like this: https://pastebin.com/KsG0cDzR
This job would have to be preceded by building the new docker image you are going to update to of course.