# DOMAIN=example.com docker stack deploy -c gitlab.yml gitlab services: gitlab: image: gitlab/gitlab-ce:${VERSION:-16.11.0-ce.0} environment: GITLAB_ROOT_EMAIL: ${ADMIN_EMAIL:-admin@example.com} GITLAB_ROOT_PASSWORD: ${ADMIN_PASSWORD:-myp@ssw0rd} # GITLAB_OMNIBUS_CONFIG: | # external_url "http://gitlab.localhost" # mattermost_external_url "http://mattermost.localhost" # mattermost['enable'] = true volumes: - ${VOLUME_PATH}data:/var/opt/gitlab - ${VOLUME_PATH}logs:/var/log/gitlab - ${VOLUME_PATH}config:/etc/gitlab deploy: labels: - traefik.enable=true - traefik.http.routers.gitlab-${NUMBER:-1}.rule=Host(`${DOMAIN:-gitlab.localhost}`) # - traefik.http.routers.gitlab-${NUMBER:-1}.rule=Host(`${DOMAIN:-gitlab.localhost}`, `mattermost.localhost`) - traefik.http.routers.gitlab-${NUMBER:-1}.entrypoints=${SCHEME:-https} - traefik.http.routers.gitlab-${NUMBER:-1}.service=gitlab-${NUMBER:-1} - traefik.http.routers.gitlab-${NUMBER:-1}.tls.certresolver=letsencrypt - traefik.http.services.gitlab-${NUMBER:-1}.loadbalancer.server.port=80 networks: - traefik - internal gitlab-runner: image: gitlab/gitlab-runner:alpine deploy: mode: replicated replicas: 1 networks: - internal volumes: data: logs: config: networks: internal: driver: overlay attachable: true traefik: external: true name: traefik-net