GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Layanan Git Self-hosted Git menggunakan Docker di Ubuntu 18.04

Gitea adalah cabang dari Gogs, layanan Git yang dihosting sendiri dengan mudah. Ini mirip dengan GitHub, Bitbucket, dan Gitlab. Gitea adalah solusi hosting kode ringan yang ditulis dalam Go, dapat berjalan pada persyaratan perangkat keras minimal. Ini adalah aplikasi lintas platform, dapat dijalankan di mana saja Go dapat dikompilasi seperti Windows, Linux, MacOS, ARM dll.

Dalam tutorial ini, saya akan menunjukkan kepada Anda langkah demi langkah cara menginstal dan mengkonfigurasi layanan Git ringan menggunakan Gitea. Kami akan menyebarkan server Gitea menggunakan Docker dan akan menggunakan database PostgreSQL dan proxy Traefik Reverse. Untuk panduan ini, kami akan menggunakan Server Ubuntu 18.04 terbaru.

Prasyarat

  • Ubuntu 18.04
  • Hak istimewa root

Apa yang akan kita lakukan?

  1. Instal Docker-CE
  2. Instal Docker Compose
  3. Menerapkan Gitea sebagai Kontainer menggunakan Docker
  4. Pasca-Instalasi Gitea
  5. Buat Repositori Pertama
  6. Menguji Komitmen Pertama

Langkah 1 - Instal Docker-CE

Langkah pertama yang akan kami lakukan untuk panduan ini adalah menginstal edisi komunitas Docker ke server Ubuntu 18.04. Kami akan menginstal paket Docker CE dari repositori resmi Docker.

Tambahkan repositori Docker dan Docker dengan menjalankan perintah di bawah ini.

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

Perintah 'add-apt-repository' akan secara otomatis memperbarui repositori.

Sekarang instal paket Docker CE.

sudo apt policy docker-ce
sudo apt install docker-ce=18.06.1~ce~3-0~ubuntu

Saat penginstalan selesai, mulai layanan buruh pelabuhan dan aktifkan untuk diluncurkan setiap kali sistem boot.

sudo systemctl start docker
sudo systemctl enable docker

Docker CE aktif dan berjalan di server Ubuntu 18.04. Verifikasi instalasi dengan memeriksa versi buruh pelabuhan.

docker version

atau jalankan buruh pelabuhan 'hello-world'.

docker run hello-world

Langkah 2 - Instal Docker Compose

Docker-Compose adalah alat baris perintah untuk mendefinisikan dan mengelola aplikasi buruh pelabuhan multi-kontainer. Ini memungkinkan Anda membuat wadah sebagai layanan, bagus untuk lingkungan pengembangan, pengujian, dan pementasan Anda.

Instal Docker Compose dengan mengunduh file biner dan membuatnya dapat dieksekusi.

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Sekarang periksa perintah docker-compose.

docker-compose version

Docker Compose sekarang telah terinstal.

Langkah 3 - Terapkan Gitea sebagai Docker Container

Pada langkah ini, kita akan membuat skrip docker-compose baru yang berisi semua konfigurasi layanan termasuk Database PostgreSQL dan reverse proxy Traefik. Kami akan menyiapkan semua file penerapan pada direktori bernama 'penyebaran'.

Buat Jaringan Docker Khusus

Sebelum membuat konfigurasi penerapan, mari buat jaringan jembatan kustom baru. Ini akan digunakan untuk traefik reverse proxy layanan eksternal.

Periksa jaringan buruh pelabuhan daftar.

docker network ls

Sekarang buat jaringan jembatan kustom baru bernama 'hakasenet'.

docker network create hakasenet

Periksa lagi.

docker network ls

Sekarang Anda akan mendapatkan jaringan 'hakasenet' dalam daftar.

Setup Deployment Directory dan Files

Buat direktori baru bernama 'deployment' dan skrip 'docker-compose.yml' di atasnya.

mkdir deployment; cd deployment
touch docker-compose.yml

Sekarang buat direktori baru 'gitea' dan volume data 'postgres'.

mkdir -p gitea/ postgres/

Buat file baru 'acme.json' dan ubah izin file. itu akan digunakan untuk menyimpan data Letsencrypt.

touch acme.json
chmod 600 acme.json

Sekarang buat file konfigurasi traefik global 'traefik.toml'.

touch traefik.toml

Dan di bawah ini adalah file dan direktori yang kami miliki untuk instalasi Gitea menggunakan Docker.

tree

Menyiapkan Layanan PostgreSQL

Layanan database PostgreSQL adalah layanan pertama yang ingin kami konfigurasikan. Layanan database hanya akan berjalan di jaringan buruh pelabuhan internal.

Dan kita akan menggunakan image Postgres 9.6, menggunakan 'gitea' sebagai nama database, user, dan password, dan mengatur volume data postgres.

Edit file 'docker-compose.yml' menggunakan vim.

vim docker-compose.yml

Tempelkan konfigurasi di bawah.

version: "3"

networks:
  hakasenet:
    external: true
  internal:
    external: false

services:
  db:
    image: postgres:9.6
    restart: always
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea
      - POSTGRES_DB=gitea
    labels:
      - "traefik.enable=false"
    networks:
      - internal
    volumes:
      - ./postgres:/var/lib/postgresql/data

Simpan dan keluar.

Setel Proksi Terbalik Traefik

Sekarang kita akan mengkonfigurasi proxy terbalik Traefik untuk instalasi Gitea kita.

Layanan traefik akan berjalan di bawah port default HTTP dan HTTPS, berjalan di jaringan jembatan khusus bernama 'hakasenet', dan kami akan mengonfigurasinya untuk menggunakan sertifikat Letsencrypt yang akan ditentukan pada file 'traefik.toml'.

Edit skrip penulisan.

vim docker-compose.yml

Tempelkan konfigurasi di bawah konfigurasi layanan db.

  traefik:
    image: traefik:latest
    command: --docker
    ports:
      - 80:80
      - 443:443
    labels:
      - "traefik.enable=true"
      - "traefik.backend=dashboard"
      - "traefik.frontend.rule=Host:traefik.hakase-labs.io"
      - "traefik.port=8080"
    networks:
      - hakasenet
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik.toml:/traefik.toml
      - ./acme.json:/acme.json
    container_name: traefik
    restart: always

Simpan dan keluar.

Sekarang edit file konfigurasi 'traefik.toml'.

vim traefik.toml

Dan paste konfigurasi berikut.

#Traefik Global Configuration
debug = false
checkNewVersion = true
logLevel = "ERROR"

#Define the EntryPoint for HTTP and HTTPS
defaultEntryPoints = ["https","http"]

#Define the HTTP port 80 and
#HTTPS port 443 EntryPoint
#Enable automatically redirect HTTP to HTTPS
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]

#Enable Traefik Dashboard on port 8080
#with basic authentication method
#hakase and password
[entryPoints.dash]
address=":8080"
[entryPoints.dash.auth]
[entryPoints.dash.auth.basic]
    users = [
        "hakase:$apr1$hEgpZUN2$OYG3KwpzI3T1FqIg9LIbi.",
    ]

[api]
entrypoint="dash"
dashboard = true

#Enable retry sending a request if the network error
[retry]

#Define Docker Backend Configuration
[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "hakase-labs.io"
watch = true
exposedbydefault = false

#Letsencrypt Registration
#Define the Letsencrypt ACME HTTP challenge
[acme]
email = "[email protected]"
storage = "acme.json"
entryPoint = "https"
OnHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

Simpan dan keluar.

Catatan:

  • Ubah email acme letsencrypt dengan alamat email Anda yang valid.

Menyiapkan Layanan Gitea

Edit file konfigurasi 'docker-compose.yml'.

vim docker-compose.yml

Tempelkan konfigurasi layanan gitea di bagian bawah baris.

  server:
    image: gitea/gitea:latest
    environment:
      - USER_UID=1000
      - USER_GID=1000
    restart: always
    networks:
      - internal
    volumes:
      - ./gitea:/data
    ports:
      - "3000"
      - "22"
    labels:
      - "traefik.enabled=true"
      - "traefik.backend=gitea"
      - "traefik.frontend.rule=Host:git.hakase-labs.io"
      - "traefik.docker.network=hakasenet"
      - "traefik.port=3000"
    networks:
      - internal
      - hakasenet
    depends_on:
      - db
      - traefik

Simpan dan keluar.

Layanan Gitea akan berjalan pada port TCP '3000', menggunakan dua jaringan buruh pelabuhan 'internal' dan 'hakasenet', dan akan berjalan di bawah traefik reverse proxy pada domain 'git.hakase-labs.io'.

Docker membuat konfigurasi untuk penerapan Gitea telah selesai.

Terapkan Semua Layanan

Sekarang terapkan tumpukan menggunakan perintah 'docker-compose' di bawah ini.

docker-compose up -d

Perintah akan mengunduh semua gambar buruh pelabuhan yang diperlukan dan menjalankan layanan yang ditentukan pada skrip pembuatan buruh pelabuhan.

Dan jika sudah selesai, cek service yang tersedia di docker menggunakan option ps seperti dibawah ini.

docker-compose ps

Sekarang Anda akan mendapatkan hasil seperti di bawah ini.

Basis data PostgreSQL, Gitea, dan wadah proxy terbalik traefik sekarang aktif dan berjalan. Layanan database berjalan pada port default '5432', server gitea berjalan pada port '3000', dan proxy traefik berjalan pada port HTTP dan HTTPS, dapat diakses dari jaringan/internet luar.

Jika Anda ingin memeriksa semua log dari pemeriksaan buruh pelabuhan, jalankan perintah di bawah ini.

docker-compose logs

Langkah 4 - Pasca-Instalasi Gitea

Buka browser web Anda dan ketik instalasi URL Gitea Anda. Milik saya adalah:

https://git.hakase-labs.io/

Sekarang Anda akan mendapatkan halaman default Gitea.

Tambahkan jalur penginstalan ke URL.

https://git.hakase-labs.io/install

Sekarang Anda akan mendapatkan halaman instalasi Gitea.

Konfigurasi basis data

Ketik detail database PostgreSQL, dan gunakan 'db ' sebagai tuan rumah.

Konfigurasi Umum Gitea

Ubah 'Judul situs' dengan judul Anda sendiri, 'Domain Server SSH' (tanpa https) dan 'URL Basis Gitea' dengan URL server gitea Anda.

Setelan Akun Admin

Pada pengaturan admin, ketik nama pengguna, kata sandi, dan alamat email admin.

Sekarang klik tombol 'Instal Gitea'.

Dan Anda akan diarahkan ke dasbor pengguna default Gitea.

Langkah 5 - Buat Repositori Pertama di Gitea

Di beranda pengguna, klik '+' tombol.

Sekarang ketik detail repositori yang ingin Anda buat.

dan klik tombol 'Buat Repositori'.

Repositori telah dibuat.

Langkah 6 - Menguji Komitmen Pertama

Kembali ke shell terminal Anda, dan atur pengguna dan email git default.

Jalankan perintah git di bawah ini.

git config --global user.name "hakase"
git config --global user.email "[email protected]"

Sekarang kloning repositori.

git clone https://git.hakase-labs.io/hakase/myrepo.git

Buka direktori repositori 'myyrepo' dan edit file README.md.

cd myrepo/
vim README.md

buat perubahan pada file README, lalu simpan dan keluar.

Sekarang komit repositori.

git add .
git commit -m 'Edit the README.md file by hakase-labs'

Dan dorong ke server.

git push origin master

Ketik nama pengguna dan kata sandi Anda.

Dan berikut hasilnya.

Periksa ke halaman repositori dan pastikan Anda mendapatkan perubahan seperti di bawah ini.

Instalasi Gitea dengan Docker di Ubuntu 18.04 telah berhasil diselesaikan.


Ubuntu
  1. Cara Menginstal Docker Di Ubuntu 18.04

  2. Cara Menginstal Git di Ubuntu 18.04 / 20.04

  3. Cara Menginstal Docker di Ubuntu 18.04 / Ubuntu 18.10 / Ubuntu 19.04

  1. Cara Menginstal Kubernetes di Ubuntu 18.04

  2. Cara Menginstal Docker Compose di Ubuntu 18.04

  3. Cara Menginstal Rancher di Ubuntu

  1. Cara Menginstal Docker Compose di Ubuntu 20.04

  2. Cara menginstal Docker di Ubuntu 22.04

  3. Cara Menginstal Gitea di Ubuntu 20.04