services: traefik: # The official v2 Traefik docker image image: traefik:latest restart: always # Enables the web UI and tells Traefik to listen to docker command: - "--providers.docker.network=traefik" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entryPoints.websecure.address=:443" - "--entryPoints.web.address=:80" - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" #- "--certificatesresolvers.myresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory" - "--certificatesresolvers.myresolver.acme.email=admin@squi.fr" - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" networks: traefik: ports: - "8080:8080" - "443:443" - "80:80" volumes: # So that Traefik can listen to the Docker events - /var/run/docker.sock:/var/run/docker.sock - ./volumes/letsencrypt:/letsencrypt gitlab: image: gitlab/gitlab-ce:latest restart: always container_name: gitlab environment: TZ: 'Europe/Paris' gitlab_omnibus_config: | external_url 'https://gitlab.chatie.re' gitlab_rails['gitlab_https'] = true gitlab_rails['gitlab_port'] = 443 letsencrypt['enable'] = false ports: - 220:22 volumes: - './volumes/config:/etc/gitlab' - './volumes/logs:/var/log/gitlab' - './volumes/data:/var/opt/gitlab' networks: - default - traefik labels: - "traefik.enable=true" - "traefik.http.routers.gitlab.rule=Host(`gitlab.chatie.re`)" - "traefik.http.services.gitlab.loadbalancer.server.port=80" - "traefik.http.routers.gitlab.entrypoints=websecure" - "traefik.http.routers.gitlab.tls.certresolver=myresolver" runner: image: gitlab/gitlab-runner:latest restart: always container_name: gitlab_runner environment: - CI_SERVER_URL=https://gitlab.chatie.re/ volumes: - ./volumes/runner:/etc/gitlab-runner - /var/run/docker.sock:/var/run/docker.sock:rw networks: traefik: name: traefik