Erstellen Sie GitLab / Mattermost mit DockerForWindows

Erstellen Sie GitLab / Mattermost mit DockerForWindows

Einführung

Ich wollte verschiedene Dinge mit der Mattermost-API ausprobieren, und als ich versuchte, schnell eine GitLab-Umgebung zu erstellen, war ich unerwartet süchtig danach, also werde ich das, was ich getan habe, verlassen. Ich möchte eine GitLab-Umgebung mit DockerForWindows erstellen.

Dinge, die sich bewegen

Ich habe es auf GitHub gestellt. (https://github.com/shimi58/CentOS8_GitLab) Die Einstellung Mattermost ändert sich jedoch jedes Mal, wenn Sie sie erstellen. Daher ist das unten beschriebene Verfahren erforderlich.

Betriebsüberprüfungsumgebung Ausführung
Windows10 Home Edition Version 2004
Docker for Windows 2.4.0.0

Umgebung

Erstellen Sie CentOS 8 auf Docker

Ich werde es in der Docker-Datei beschreiben. Das Ergebnis ist wie folgt.

FROM centos:8

#Lokalisierung ins Japanische
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 für die Installation von Gitlab.UTF-Wechseln Sie zu 8
ENV LANG="C.UTF-8" \
    LANGUAGE="ja_JP:ja" \
    LC_ALL="ja_JP.UTF-8"

#Root-Passworteinstellung
RUN echo "root:root" | chpasswd

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

# =====
#Installieren Sie 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" #Für GitLab
      - "9081:9081" #Für GitLab Mattermost
      - '10443:443'
    volumes:
      #Ausdauer nach der Formel
      - './srv/gitlab/config:/etc/gitlab'   #Platzieren Sie die GitLab-Definitionsdatei
      - './srv/gitlab/logs:/var/log/gitlab' #Ausgabe der GItLab-Protokolldatei
      - './srv/gitlab/data:/var/opt/gitlab' #GItLab-Datenspeicherung

Ergänzung

Ich habe darauf hingewiesen (https://qiita.com/polarbear08/items/e5c00869c7566db5f7b8). Wenn Sie LANG nicht auf C.UTF-8 setzen, wird die DB-Migration von "gitlab-ctl-Neukonfiguration" gestoppt. Seien Sie also vorsichtig.

--Installieren Sie 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
```

Dies ist das offizielle Verfahren. (Beachten Sie, dass die offizielle Stichprobe gitlab-ee ist)

--Datenpersistenz

```docker-compose.yml
    volumes:
      #Persistenz nach der Formel
      - './srv/gitlab/config:/etc/gitlab'   #Platzieren Sie die GitLab-Definitionsdatei
      - './srv/gitlab/logs:/var/log/gitlab' #Ausgabe der GItLab-Protokolldatei
      - './srv/gitlab/data:/var/opt/gitlab' #GItLab-Datenspeicherung
```

Wenn dies festgelegt ist, bleiben die Daten auch dann erhalten, wenn der Container gelöscht wird.

Bauverfahren

  1. Platzieren Sie die obige Dockerfile und docker-compose.yml in einem beliebigen Verzeichnis.

  2. Wechseln Sie in das platzierte Verzeichnis und starten Sie den Container

    docker-compose up -d
    
  3. Platzieren Sie gitlab.rb im angegebenen Ordner

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

Diese Datei finden Sie hier (https://github.com/shimi58/CentOS8_GitLab).

  1. Stellen Sie den Port von GitLab ein

    external_url 'http://localhost:9080'
    
  2. Aktivieren Sie GitLab Mattermost

    mattermost_external_url 'http://localhost:9081'
    mattermost['enable'] = true
    
  3. Melden Sie sich beim Container an

    docker exec -it centos8 bash
    
  1. Reflektieren Sie die GitLab-Einstellungen

    sudo /opt/gitlab/embedded/bin/runsvdir-start &
    gitlab-ctl reconfigure
    
  1. Greifen Sie nach dem Nachdenken auf GitLab zu

    http://localhost:9080
    

--Mattermost kann auch zu diesem Zeitpunkt angezeigt werden

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

Ergänzung

―― Danach wird es das Verfahren der wichtigsten SSO-Zusammenarbeit sein

  1. Melden Sie sich nach Abschluss der anfänglichen Kennworteinstellungen an

    image.png

  1. Überprüfen Sie die wichtigsten Einstellungen
  1. Geben Sie die oben in gitlab.rb bestätigte "Anwendungs-ID" und "Geheimnis" wieder. Fügen Sie gleichzeitig die erforderlichen Einstellungen hinzu

    mattermost['gitlab_enable'] = true #SSO aktiviert
    mattermost['gitlab_id'] = "5e7f43cdf588e92c8b0ca589832c64dd5094969c5848667a09e50ffe4834c065"      #Application ID
    mattermost['gitlab_secret'] = "23791f7219f6782f38c9c1f462c5e715e88216ee13d3513a122dc9c302ba130b"  #secret
    mattermost['gitlab_auth_endpoint'] = "http://localhost:9080/oauth/authorize" #Geben Sie die URL von GitLab ein
    mattermost['gitlab_token_endpoint'] = "http://localhost:9080/oauth/token"    #Geben Sie die URL von GitLab ein
    mattermost['gitlab_user_api_endpoint'] = "http://localhost:9080/api/v4/user" #Geben Sie die URL von GitLab ein
    
  2. Reflektieren Sie die GitLab-Einstellungen

    gitlab-ctl reconfigure
    
  3. Wählen Sie unter Mattermost "Mit GitLab anmelden" und melden Sie sich an

    image.png

  1. Vergewissern Sie sich, dass der Bildschirm zum Bildschirm Mattermost wechselt

    image.png

schließlich

Das diesmal erstellte GitLab ist selbst mit COREi7- und 16G-Speicher sehr schwer. image.png

Nachtrag 2020/10/18

Nach der Neuerstellung des Containers ist eine Neukonfiguration von gitlab-ctl erforderlich, um die Wiederherstellung persistenter Daten widerzuspiegeln.

Recommended Posts

Erstellen Sie GitLab / Mattermost mit DockerForWindows
Baue Doma1 mit Ant
Baue Growai mit Centos7
Erstellen Sie Java mit Wercker
Bazel mit Alpen bauen
(Für mich) Baue ein Git-Labor mit Ubuntu 18.04 + Docker für zu Hause (Hinweis)
Erstellen Sie mit Centos7 ein Softether-VPN.
Richten Sie GitLab mit Docker ein
Erstellen einer Docker-Umgebung mit WSL
Ninja-Build mit Smart Differential Build
Erstellen Sie AWS Lambda mit Quarkus
[Einführung] Erstellen Sie MVC mit Scala
Erstellen Sie DynamoDB local mit Docker
Erstellen Sie mit Docker eine lokale Couchbase-Umgebung
Erstellen eines Java-Projekts mit Gradle
Erstellen Sie mit Docker eine Node.js-Umgebung
Erstellen Sie mit Pleiades 4.8 eine Tomcat 8.5-Umgebung
Erstellen Sie eine Webanwendung mit Javalin
Erstellen Sie Java mit Mac vs Code
Erstellen Sie Virtual Box & Vagrant & Centos7 & GitLab
Erstellen Sie mit Eclipse eine Jooby-Entwicklungsumgebung
Erstellen Sie mit Laradock eine Docker + Laravel-Umgebung