version: '3.8' services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab restart: unless-stopped hostname: 'gitlab.local' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.local' gitlab_rails['gitlab_shell_ssh_port'] = 2222 # Reduce memory usage puma['worker_processes'] = 2 sidekiq['max_concurrency'] = 5 prometheus_monitoring['enable'] = false ports: - '8080:80' - '8443:443' - '2222:22' volumes: - gitlab_config:/etc/gitlab - gitlab_logs:/var/log/gitlab - gitlab_data:/var/opt/gitlab networks: - gitlab-network shm_size: '256m' # Resource limits for smaller deployments deploy: resources: limits: cpus: '4' memory: 8G reservations: cpus: '2' memory: 4G volumes: gitlab_config: driver: local gitlab_logs: driver: local gitlab_data: driver: local networks: gitlab-network: driver: bridge