doc-locale/fr-fr/install/docker/configuration.md
{{< details >}}
{{< /details >}}
Ce conteneur utilise le package Linux officiel, vous pouvez donc utiliser le fichier de configuration unique /etc/gitlab/gitlab.rb pour configurer l'instance.
Pour accéder au fichier de configuration GitLab, vous pouvez démarrer une session shell dans le contexte d'un conteneur en cours d'exécution.
Démarrez la session :
sudo docker exec -it gitlab /bin/bash
Vous pouvez également ouvrir /etc/gitlab/gitlab.rb directement dans un éditeur :
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
Dans l'éditeur de texte de votre choix, ouvrez /etc/gitlab/gitlab.rb et mettez à jour les champs suivants :
Définissez le champ external_url sur une URL valide pour votre instance GitLab.
Pour recevoir des e-mails de GitLab, configurez les paramètres SMTP. L'image Docker de GitLab ne dispose pas d'un serveur SMTP préinstallé.
Si vous le souhaitez, activez HTTPS.
Enregistrez le fichier et redémarrez le conteneur pour reconfigurer GitLab :
sudo docker restart gitlab
GitLab se reconfigure à chaque démarrage du conteneur. Pour plus d'options de configuration dans GitLab, consultez la documentation de configuration.
Vous pouvez préconfigurer l'image Docker de GitLab en ajoutant la variable d'environnement GITLAB_OMNIBUS_CONFIG à la commande Docker run. Cette variable peut contenir n'importe quel paramètre gitlab.rb et est évaluée avant le chargement du fichier gitlab.rb du conteneur. Ce comportement vous permet de configurer l'URL GitLab externe, d'effectuer une configuration de base de données ou toute autre option du modèle de package Linux. Les paramètres contenus dans GITLAB_OMNIBUS_CONFIG ne sont pas écrits dans le fichier de configuration gitlab.rb et sont évalués au chargement. Pour fournir plusieurs paramètres, séparez-les par un point-virgule (;).
L'exemple suivant définit l'URL externe, active LFS et démarre le conteneur avec une taille shm minimale requise pour Prometheus :
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'; gitlab_rails['lfs_enabled'] = true;" \
--publish 443:443 --publish 80:80 --publish 22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ee:<version>-ee.0
À chaque exécution d'une commande docker run, vous devez fournir l'option GITLAB_OMNIBUS_CONFIG. Le contenu de GITLAB_OMNIBUS_CONFIG n'est pas conservé entre les exécutions successives.
Vous pouvez configurer Docker pour utiliser votre adresse IP et transférer tout le trafic vers le conteneur GitLab en modifiant le flag --publish.
Pour exposer GitLab sur l'IP 198.51.100.1 :
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com'" \
--publish 198.51.100.1:443:443 \
--publish 198.51.100.1:80:80 \
--publish 198.51.100.1:22:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ee:<version>-ee.0
Vous pouvez ensuite accéder à votre instance GitLab à l'adresse http://198.51.100.1/ et https://198.51.100.1/.
GitLab occupe des ports spécifiques à l'intérieur du conteneur.
Si vous souhaitez utiliser des ports hôtes différents des ports par défaut 80 (HTTP), 443 (HTTPS) ou 22 (SSH), vous devez ajouter une directive --publish distincte à la commande docker run.
Par exemple, pour exposer l'interface web sur le port 8929 de l'hôte et le service SSH sur le port 2424 :
Utilisez la commande docker run suivante :
sudo docker run --detach \
--hostname gitlab.example.com \
--env GITLAB_OMNIBUS_CONFIG="external_url 'http://gitlab.example.com:8929'; gitlab_rails['gitlab_shell_ssh_port'] = 2424" \
--publish 8929:8929 --publish 2424:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
--shm-size 256m \
gitlab/gitlab-ee:<version>-ee.0
[!note] Le format pour publier les ports est
hostPort:containerPort. Pour en savoir plus, consultez la documentation Docker sur l'exposition des ports entrants.
Accédez au conteneur en cours d'exécution :
sudo docker exec -it gitlab /bin/bash
Ouvrez /etc/gitlab/gitlab.rb avec votre éditeur et définissez external_url :
# For HTTP
external_url "http://gitlab.example.com:8929"
or
# For HTTPS (notice the https)
external_url "https://gitlab.example.com:8929"
Le port spécifié dans cette URL doit correspondre au port publié vers l'hôte par Docker. De plus, si le port d'écoute NGINX n'est pas explicitement défini dans nginx['listen_port'], c'est external_url qui est utilisé à la place. Pour plus d'informations, consultez la documentation NGINX.
Définissez le port SSH :
gitlab_rails['gitlab_shell_ssh_port'] = 2424
Enfin, reconfigurez GitLab :
gitlab-ctl reconfigure
En suivant l'exemple précédent, votre navigateur web peut accéder à votre instance GitLab à l'adresse <hostIP>:8929 et envoyer des données via SSH sur le port 2424.
Vous pouvez consulter un exemple de fichier docker-compose.yml utilisant des ports différents dans la section Docker Compose.
Depuis GitLab 16.0, GitLab utilise par défaut deux connexions à la base de données pointant vers la même base de données PostgreSQL.
Si, pour quelque raison que ce soit, vous souhaitez revenir à une connexion unique à la base de données :
Modifiez /etc/gitlab/gitlab.rb à l'intérieur du conteneur :
sudo docker exec -it gitlab editor /etc/gitlab/gitlab.rb
Ajoutez la ligne suivante :
gitlab_rails['databases']['ci']['enable'] = false
Redémarrez le conteneur :
sudo docker restart gitlab
Après avoir configuré votre installation, envisagez de suivre les prochaines étapes recommandées, notamment les options d'authentification et les restrictions liées aux nouveaux comptes utilisateurs.