2 votes

Configurer le conteneur Docker de GitLab avec Plesk et LetsEncrypt

Bonjour, j'ai un problème avec ma configuration GitLab.

Ce que j'essaie d'obtenir :

  • exécuter GitLab dans un conteneur Docker
  • accéder à GitLab via un sous-domaine (gitlab.mydomain.com) aux ports 80 et 443 pour https
  • gérer le SSL par le biais d'un certificat joker pour *.mydomain.com fourni par LetsEncrypt et Plesk (déjà utilisé pour les sous-domaines gérés par Plesk)
  • pouvoir exécuter des tâches de construction dans le conteneur GitLab (npm scripts etc.) et enfin déplacer des fichiers de sortie spécifiques vers des répertoires de sous-domaines gérés par Plesk (hors du conteneur)

Ce que j'ai fait jusqu'à présent :

  • J'ai un serveur virtuel qui fonctionne sous Ubuntu 18.04.2 avec Plesk Onyx 17.8.11 préinstallé.
  • configurer mydomain.com via Plesk
  • configurer un certificat LetsEncrypt wildcard pour mondomaine.com via Plesk
  • installation de Docker via ssh (pas Plesk)
  • a lancé GitLab dans un conteneur à mydomain.com:30080

Je suis complètement novice en matière d'environnements de serveur et de Docker, donc je ne suis pas sûr de la structure nécessaire des choses. Peut-être savez-vous ce qu'il faut faire ?

Merci !

0voto

le0m Points 116

Cette configuration fonctionne pour moi :

  1. créer un sous-domaine à partir de Plesk (ex. gitlab.mydomain.com)
  2. sélectionnez votre certificat Let's Encrypt dans "Paramètres d'hébergement" et assurez-vous de définir une redirection 301 permanente sur HTTPS (cochez simplement la case).
  3. lors du démarrage de votre conteneur Docker, exposez le port 80 (ex. 80:10080)
  4. dans "Apache & nginx Settings" ajouter ce qui suit :

    location / { proxy_pass http://localhost:10080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; }

Cela servira votre sous-domaine par le biais de HTTPS et de votre certificat Let's Encrypt, tout en envoyant les demandes au port 80 de votre conteneur afin que vous n'ayez pas à vous soucier de transmettre le certificat à GitLab depuis l'extérieur du conteneur.

D'après ce que j'ai compris, cette solution est sûre, car le trafic non crypté est confiné dans le serveur (si votre démon Docker se trouve sur le même serveur que Plesk) et inaccessible de l'extérieur.

--

Pour votre dernier point

être capable d'exécuter des tâches de construction dans le conteneur GitLab (npm scripts etc.) et enfin déplacer des fichiers de sortie spécifiques vers des répertoires de sous-domaines gérés par Plesk (en dehors du conteneur)

c'est une question à part entière.

Pour exécuter les constructions, vous devez installer GitLab Runner. La documentation de GitLab suggère de l'installer sur un hôte différent, mais vous pouvez essayer d'utiliser le logiciel Image Docker sur le même hôte.

Pour construire et déployer vos applications, voir GitLab Runner. docs . Vous devrez configurer des "pipelines" pour ce que l'on appelle le "déploiement continu".

Pour créer un sous-domaine pour chaque application, vous pouvez soit.. :

  • créer les sous-domaines manuellement à partir de Plesk et déployer les fichiers à l'aide de scripts comme étape finale de votre "pipeline".
  • utiliser quelques scripts et les API de Plesk pour créer automatiquement des sous-domaines
  • ignorez Plesk et optez pour un système Docker complet ; utilisez un proxy inverse qui gérera tous vos sous-domaines et vos certificats Let's Encrypt, par exemple Traefik

Il ne s'agit que d'indications, je vous suggère de faire des recherches et de lire davantage sur le sujet du CI/CD.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X