Construire GitLab / Mattermost avec DockerForWindows

Construire GitLab / Mattermost avec DockerForWindows

introduction

Je voulais essayer diverses choses en utilisant l'API Mattermost, et quand j'ai essayé de créer rapidement un environnement GitLab, j'en ai été accro de manière inattendue, alors je vais laisser ce que j'ai fait. Ce que je veux faire, c'est créer un environnement GitLab à l'aide de DockerForWindows.

Des choses qui bougent

Je l'ai mis sur GitHub. (https://github.com/shimi58/CentOS8_GitLab) Cependant, le paramètre Mattermost change chaque fois que vous le créez, la procédure décrite ci-dessous est donc requise.

Environnement de vérification de fonctionnement version
Windows10 Home Edition Version 2004
Docker for Windows 2.4.0.0

Environnement

Construire CentOS 8 sur Docker

Je vais le décrire dans le Dockerfile. Le résultat est le suivant.

FROM centos:8

#Localisation en japonais
RUN rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial && \
    dnf -y upgrade && \
    dnf -y install glibc-locale-source && \
    dnf clean all && \
    localedef -f UTF-8 -i ja_JP ja_JP.UTF-8 && \
    ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

#C LANG pour l'installation de Gitlab.UTF-Changer en 8
ENV LANG="C.UTF-8" \
    LANGUAGE="ja_JP:ja" \
    LC_ALL="ja_JP.UTF-8"

#paramètre de mot de passe root
RUN echo "root:root" | chpasswd

# =====
# BASE packages
# =====
RUN dnf install -y  openssl openssl-devel openssh openssh-server wget sudo unzip  which tree git firewalld

# =====
#Installez GitLab CE
# =====
RUN curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

RUN dnf install -y gitlab-ce

docker-compose.yml


version: '3'
services:
  centos8:
    container_name: "centos8"
    build: ./
    tty: true
    privileged: true
    command: /sbin/init   
    ports:
      - "2222:22"
      - "9080:9080" #Pour GitLab
      - "9081:9081" #Pour GitLab Mattermost
      - '10443:443'
    volumes:
      #Persistance selon la formule
      - './srv/gitlab/config:/etc/gitlab'   #Placer le fichier de définition GitLab
      - './srv/gitlab/logs:/var/log/gitlab' #Sortie du fichier journal GItLab
      - './srv/gitlab/data:/var/opt/gitlab' #Stockage de données GItLab

Supplément

J'y ai fait référence (https://qiita.com/polarbear08/items/e5c00869c7566db5f7b8). Si vous ne définissez pas LANG sur C.UTF-8, il s'arrêtera autour de la migration de base de données de "gitlab-ctl reconfigure", donc soyez prudent.

--Installez GitLab CE

```cmd
RUN curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

RUN dnf install -y gitlab-ce
```

C'est la procédure officielle. (Notez que l'exemple officiel est gitlab-ee)

Si cela est défini, les données seront conservées même si le conteneur est supprimé.

Procédure de construction

  1. Placez le Dockerfile et docker-compose.yml ci-dessus dans n'importe quel répertoire.

  2. Accédez au répertoire placé et démarrez le conteneur

    docker-compose up -d
    
  3. Placez gitlab.rb dans le dossier spécifié

    srv
    └─gitlab
        ├─config
        │      gitlab.rb
        │
        ├─data
        └─logs
    

Ce fichier peut être trouvé ici (https://github.com/shimi58/CentOS8_GitLab).

  1. Définissez le port de GitLab

    external_url 'http://localhost:9080'
    
  2. Activez GitLab Mattermost

    mattermost_external_url 'http://localhost:9081'
    mattermost['enable'] = true
    
  3. Connectez-vous au conteneur

    docker exec -it centos8 bash
    
  1. Refléter les paramètres GitLab

    sudo /opt/gitlab/embedded/bin/runsvdir-start &
    gitlab-ctl reconfigure
    
  1. Après réflexion, accédez à GitLab

    http://localhost:9080
    

--La plus grande quantité peut également être affichée à ce moment

    ```url
    http://localhost:9081
    ```

Supplément

――Après cela, ce sera la procédure de coopération SSO de Mattermost

  1. Une fois les paramètres de mot de passe initiaux définis, connectez

    image.png

  1. Vérifiez les paramètres Mattermost --Déplacez-vous dans "Zone d'administration" -> "Applications" --S'il existe déjà une définition pour Mattermost, utilisez-la, sinon créez-en une nouvelle (* Elle ne sera pas affichée si le paramètre le plus important dans gitlab.rb est activé)

    image.png

  1. Reflétez les "ID d'application" et "Secret" confirmés ci-dessus dans gitlab.rb. En même temps, ajoutez les paramètres nécessaires

    mattermost['gitlab_enable'] = true #SSO activé
    mattermost['gitlab_id'] = "5e7f43cdf588e92c8b0ca589832c64dd5094969c5848667a09e50ffe4834c065"      #Application ID
    mattermost['gitlab_secret'] = "23791f7219f6782f38c9c1f462c5e715e88216ee13d3513a122dc9c302ba130b"  #secret
    mattermost['gitlab_auth_endpoint'] = "http://localhost:9080/oauth/authorize" #Entrez l'URL de GitLab
    mattermost['gitlab_token_endpoint'] = "http://localhost:9080/oauth/token"    #Entrez l'URL de GitLab
    mattermost['gitlab_user_api_endpoint'] = "http://localhost:9080/api/v4/user" #Entrez l'URL de GitLab
    
  2. Refléter les paramètres GitLab

    gitlab-ctl reconfigure
    
  3. Dans Mattermost, sélectionnez "Se connecter avec GitLab" et connectez-vous

    image.png

  1. Confirmez que l'écran passe à l'écran le plus important

    image.png

enfin

Le GitLab construit cette fois-ci est lourd même avec la mémoire COREi7 et 16G. image.png

2020/10/18 postscript

Après avoir reconstruit le conteneur, la reconfiguration gitlab-ctl est requise pour refléter la restauration des données persistantes.

Recommended Posts

Construire GitLab / Mattermost avec DockerForWindows
Construire Doma1 avec Ant
Construisez Growai avec Centos7
Construire Java avec Wercker
Construisez bazel avec alpin
(Pour moi-même) Construisez un laboratoire git avec ubuntu 18.04 + docker pour la maison (Remarque)
Créez un VPN softether avec Centos7.
Configurer GitLab avec docker
Créer un environnement Docker avec WSL
Construction ninja avec construction différentielle intelligente
Créez AWS Lambda avec Quarkus
[Introduction] Construire MVC avec Scala
Construire DynamoDB local avec Docker
Créer un environnement local Couchbase avec Docker
Construire un projet Java avec Gradle
Créer un environnement Node.js avec Docker
Créer un environnement Tomcat 8.5 avec Pleiades 4.8
Créer une application Web avec Javalin
Construire Java avec Mac vs Code
Construire Virtual Box & Vagrant & Centos7 & GitLab
Créer un environnement de développement Jooby avec Eclipse
Créez un environnement Docker + Laravel avec Laradock