Оказывается, gitlab просто отображает nginx error.log всегда при запуске. Так что сертификат ssl уже был там и работает. У меня все еще были проблемы с настройкой порта для работы с jwilder nginx-proxy. Вот так выглядит и работает мой последний конфиг:
символическая ссылка .env с gitlab-docker$ln -s ../.env .env
официальный docker-compose.yml из следующего облака: ./docker-compose.yml
version: '2' services: proxy: image: jwilder/nginx-proxy container_name: proxy ports: - 80:80 - 443:443 volumes: - ./proxy/conf.d:/etc/nginx/conf.d - ./proxy/vhost.d:/etc/nginx/vhost.d - ./proxy/html:/usr/share/nginx/html - ./proxy/certs:/etc/nginx/certs:ro - /var/run/docker.sock:/tmp/docker.sock:ro networks: - proxy-tier restart: always letsencrypt-companion: image: alastaircoote/docker-letsencrypt-nginx-proxy-companion container_name: letsencrypt-companion volumes_from: - proxy volumes: - /var/run/docker.sock:/var/run/docker.sock:ro - ./proxy/certs:/etc/nginx/certs:rw restart: always web: image: nginx container_name: nextcloud_webserver volumes: - ./nginx.conf:/etc/nginx/nginx.conf:ro links: - app - collabora volumes_from: - app environment: - VIRTUAL_HOST=$ - VIRTUAL_NETWORK=nginx-proxy - VIRTUAL_PORT=80 - LETSENCRYPT_HOST=$ - LETSENCRYPT_EMAIL=$ networks: - proxy-tier restart: always app: image: nextcloud:fpm container_name: nextcloud_fpm links: - db volumes: - ./nextcloud/apps:/var/www/html/apps - ./nextcloud/config:/var/www/html/config - ./nextcloud/data:/var/www/html/data networks: - proxy-tier restart: always db: image: mariadb container_name: db volumes: - ./nextcloud/db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=$ - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD=$ networks: - proxy-tier restart: always redis: image: redis container_name: redis networks: - proxy-tier restart: always collabora: image: collabora/code container_name: collabora cap_add: - MKNOD environment: - domain=$ networks: - proxy-tier restart: always networks: proxy-tier: external: name: nginx-proxy
./gitlab-docker/docker-compose.yml
version: '2' services: gitlab: image: gitlab/gitlab-ce:latest container_name: gitlab restart: always hostname: $ environment: VIRTUAL_HOST: $ VIRTUAL_NETWORK: nginx-proxy VIRTUAL_PORT: 80 LETSENCRYPT_HOST: $ LETSENCRYPT_EMAIL: $ GITLAB_OMNIBUS_CONFIG: | external_url 'https://$' nginx['ssl_certificate'] = "/etc/gitlab/ssl/fullchain.pem" nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/key.pem" nginx['listen_port'] = 80 nginx['listen_https'] = false nginx['proxy_set_headers'] = { "X-Forwarded-Proto" => "https", "X-Forwarded-Ssl" => "on" } # Add any other gitlab.rb configuration here, each on its own line ports: - '3022:22' volumes: - gitcerts:/etc/gitlab/ssl:ro - ../gitlab/config:/etc/gitlab - ../gitlab/logs:/var/log/gitlab - ../gitlab/data:/var/opt/gitlab networks: - proxy-tier networks: proxy-tier: external: name: nginx-proxy volumes: gitcerts: driver_opts: type: none device: /opt/nextcloud-docker/.examples/proxy/certs/$ o: bind
- Обратите внимание на именованный том для доступа к сертификатам для gitlab (для вывода
docker volume ls
списка томов иdocker volume inspect $name
для отображения точки монтирования, которая в моем случае есть/var/lib/docker/volumes/gitlabdocker_gitcerts/_data
). - Также обратите внимание на конкретные директивы прослушивания для gitlab, кредиты на которые приведены ниже.
Кредиты:
- https://gitlab.com/gitlab-org/omnibus-gitlab/issues/1307
- https://github.com/jwilder/nginx-proxy/issues/309#issuecomment-163556850 (для объяснения работы jwilder / nginx-proxy)