65 lines
2.7 KiB
YAML
65 lines
2.7 KiB
YAML
# gitlab/gitlab-ce:18.1.2-ce.0 - https://hub.docker.com/r/gitlab/gitlab-ce/tags
|
|
|
|
services:
|
|
gitlab:
|
|
image: gitlab/gitlab-ce:latest
|
|
container_name: gitlab
|
|
hostname: "git.wompmacho.com" # This hostname is mostly for internal consistency
|
|
environment:
|
|
GITLAB_OMNIBUS_CONFIG: |
|
|
external_url 'https://git.wompmacho.com'
|
|
gitlab_rails['gitlab_shell_ssh_port'] = 4446
|
|
letsencrypt['enable'] = false # Assuming your external Nginx handles Let's Encrypt
|
|
|
|
puma['worker_processes'] = 2 # Reduce Puma worker processes
|
|
prometheus_monitoring['enable'] = false # Disable Prometheus monitoring
|
|
sidekiq['max_concurrency'] = 10 # Reduce Sidekiq concurrency
|
|
|
|
# --- Settings for Nginx Reverse Proxy with SSL termination ---
|
|
nginx['listen_port'] = 80 # GitLab's internal Nginx listens on HTTP port 80 (inside the container)
|
|
nginx['listen_https'] = false # GitLab's internal Nginx should NOT listen for HTTPS
|
|
|
|
# Tell GitLab that it's behind an HTTPS proxy
|
|
nginx['proxy_set_headers'] = {
|
|
"X-Forwarded-Proto" => "https",
|
|
"X-Forwarded-Ssl" => "on"
|
|
}
|
|
# Add your Nginx proxy's internal IP address to trusted proxies
|
|
# Replace 172.x.x.x/xx with the actual network range of your Docker bridge or external Nginx IP
|
|
gitlab_rails['trusted_proxies'] = ['172.17.0.0/16'] # Example: Docker default bridge network range
|
|
ports:
|
|
# Map container port 80 (HTTP) to your desired host port, e.g., 4444.
|
|
# Your external Nginx will then proxy to this host port (or directly to the container's IP:80 if on the same Docker network).
|
|
- "4444:80"
|
|
- "4446:22" # SSH port (usually handled directly, not proxied by Nginx for Git over SSH)
|
|
# Port 443 mapping is usually removed from GitLab's side if Nginx handles it,
|
|
# or used for internal communication if your Nginx connects to GitLab over HTTPS internally.
|
|
# For simplicity, if Nginx terminates SSL, GitLab listens HTTP.
|
|
# So, no need for 4445:443 mapping here.
|
|
volumes:
|
|
- "${GITLAB_HOME}/config:/etc/gitlab"
|
|
- "${GITLAB_HOME}/logs:/var/log/gitlab"
|
|
- "${GITLAB_HOME}/data:/var/opt/gitlab"
|
|
deploy:
|
|
resources:
|
|
limits:
|
|
memory: 8g
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "512m"
|
|
max-file: "3"
|
|
shm_size: "4g"
|
|
env_file:
|
|
- path: ./.env
|
|
required: true
|
|
restart: unless-stopped
|
|
|
|
gitlab-runner:
|
|
image: gitlab/gitlab-runner:latest
|
|
container_name: gitlab-runner
|
|
restart: unless-stopped
|
|
volumes:
|
|
- "${GITLAB_HOME}/gitlab-runner/config:/etc/gitlab-runner"
|
|
- /var/run/docker.sock:/var/run/docker.sock
|