Gogs 在 Docker 下的部署

Gogs

Gogs 是一款極易搭建的自助 Git 服務。html

Gogs 是用 Go 語言開發的,最簡單、最快速和最輕鬆的方式搭建自助 Git 服務。mysql

  • 易安裝git

    除了能夠根據操做系統平臺經過 二進制運行[1],還能夠經過 Docker[2]Vagrant[3],以及 包管理[4] 安裝。github

  • 跨平臺web

    任何 Go 語言支持的平臺均可以運行 Gogs,包括 Windows、Mac、Linux 以及 ARM。sql

  • 輕量級docker

    一個廉價的樹莓派的配置足以知足 Gogs 的最低系統硬件要求。最大程度上節省服務器資源數據庫

  • 開源化編程

    全部的代碼都開源在 GitHub[5]瀏覽器

而且支持多種數據庫,例如 MySQL、MSSQL、SQLite3 等。本文就以 Mysql 及 SQLite3 爲例,介紹下部署配置。下面都以 docker-compose 方式部署,安裝方法見官網[6]

Gogs + MySQL

1. 配置文件

docker-compose.yml

version: "3"
services:  gogs:  restart: always # 自動重啓  image: gogs/gogs  container_name: gogs  ports:  - "6022:22" # ssh 端口  - "6023:3000" # Web 訪問端口  volumes:  - ./gogs-data:/data # 數據存儲  depends_on:  - mysql  mysql:  restart: always  image: mysql:5  container_name: mysql  environment:  MYSQL_ROOT_PASSWORD: 123456  MYSQL_USER: gogs # gogs 訪問數據庫用的帳號  MYSQL_PASSWORD: gogs123456  ports:  - "6006:3306"  volumes:  - ./conf/my.cnf:/etc/mysql/my.cnf  - ./mysql:/var/lib/mysql  - /etc/localtime:/etc/localtime:ro  # 通常會對 MySQL 進行配置,因此上面採用了 cnf 文件的形式,若是隻是修改字符集,也可使用 command 的形式,以下面所示  # command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci  複製代碼

my.cnf

[client] default-character-set=utf8mb4

[mysql] default-character-set=utf8mb4

複製代碼[mysqld] character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci 複製代碼

注意:MYSQL_USER 並不是必須,安裝頁面會要求輸入用戶名,若是沒有配置 MYSQL_USER ,也能夠用 root 帳戶,此時記得設置 MYSQL_ROOT_PASSWORD

2. 部署

拷貝上述文件到服務器上

而後執行docker-compose up -d,會自動拉取鏡像,並啓動容器。

若是不是用root訪問數據庫,就先不急着打開瀏覽器安裝 Gogs,先用 HediSQL(訪問數據庫工具)打開數據庫,賦予gogs用戶遠程訪問權限,不然安裝是會報錯。

數據庫設置不正確:Error 1044: Access denied for user 'gogs'@'%' to database 'gogs',就是沒有給gogs訪問權限。

還須要本身建立個數據庫,例如:gogs(Gogs 能自動建立更好)。

配置好數據庫權限後,用瀏覽器打開http://ip:6023進行 Gogs 的安裝。

須要修改的內容:

數據庫主機: mysql:3306
數據庫用戶: gogs 數據庫用戶密碼: ••••••••••  域名: localhost # 改爲本身的 SSH 端口號 : 6022 HTTP 端口號 : 6023 應用 URL : http://localhost:6023/ 複製代碼

安裝上述配置好後,點擊當即安裝,就大功告成了。

可選設置中,能夠禁用註冊功能,在禁用註冊功能時須要配置管理員帳號。

PS:管理員帳號不能爲admin,會報錯

Gogs + SQLite3

方式就更簡單了

1. 配置文件

docker-compose.yml

version: "3"
services:  gogs:  restart: always # 自動重啓  image: gogs/gogs  container_name: gogs  ports:  - '6022:22' # ssh 端口  - '6023:3000' # Web 訪問端口  volumes:  - ./gogs-data:/data # 數據存儲  複製代碼

2. 部署

拷貝上述文件到服務器上

而後執行docker-compose up -d,會自動拉取鏡像,並啓動容器。

用瀏覽器打開http://ip:6023進行 Gogs 的安裝。記得修改端口和域名,而後點擊安裝就能夠了。

參考資料

[1]

二進制運行: https://gogs.io/docs/installation/install_from_binary.html

[2]

Docker 安裝: https://github.com/gogits/gogs/tree/master/docker

[3]

Vagrant 安裝: https://github.com/geerlingguy/ansible-vagrant-examples/tree/master/gogs

[4]

包管理: https://gogs.io/docs/installation/install_from_packages.html

[5]

Gogs: https://github.com/gogits/gogs/

[6]

Docker Compose: https://docs.docker.com/compose/install/

公衆號@編程大道
相關文章
相關標籤/搜索