The GitLab docker container is a behemoth - it has everything it could need installed, and so at idle with 2 users and 0 repos, it sits hot at 6GB usage minimum.
I have pinched the following config example (from here) on how to disable a lot of unnecessary stuff:
mattermost['enable'] = false
mattermost_nginx['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
prometheus_monitoring['enable'] = false
grafana['enable'] = false
postgres_exporter['enable'] = false
pgbouncer_exporter['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
monitoring_role['enable'] = false
gitlab_exporter['enable'] = false
# if you're using an external reverse proxy like NGINX, Caddy or Traefik
nginx['listen_https'] = false
nginx['redirect_http_to_https'] = false
letsencrypt['enable'] = false
nginx['status'] = { 'enable' => false }
# if you're using an external smtp server
gitlab_rails['smtp_enable'] = false
# if you don't use Kubernetes
gitlab_kas['enable'] = false
# and if you plan to use external Postgres/Redis:
postgresql['enable'] = false
## external PostgreSQL connection details
gitlab_rails['db_adapter'] = 'postgresql'
gitlab_rails['db_encoding'] = 'unicode'
gitlab_rails['db_host'] = '10.1.0.5' # IP/hostname of database server
gitlab_rails['db_password'] = 'DB password'
## external Redis details
redis['enable'] = false
gitlab_rails['redis_host'] = 'redis.example.com'
gitlab_rails['redis_port'] = 6379
# only required if Redis authentication is configured on the Redis node
gitlab_rails['redis_password'] = 'Redis Password'