I'm currently creating some micro-service applications with Docker and Flask.
Python is quite a beginner-friendly language, and Flask is easy to get started with.

At the same time, it isn't straightforward to add more than basic features. For example, the tutorials use Flask-RESTful. Adding Swagger-UI to my “standard” Docker image is quite a hassle.

You can use flask-swagger-ui, but then you have to figure out how to serve the static json file.

In one of the courses, I used docker-compose with nginx and a separate swagger image to set up swagger. But I'm stumped on how to re-create this setup with GitLab CI and a single Docker file.

Plus, you can't auto-generate the swagger spec with Flask-Restful. As an alternative, you could use Flask-RESTplus.
But the Flask-RESTplus repository has more open issues and is not as widely used as Flask-RESTful.

For someone not familiar with Flask, it seems like you have a lot of work to do. That's probably not a surprise, as Flask is a micro framework.