請先參考docker安裝mysql, 進(jìn)行mysql的安裝: http://www.reibang.com/p/5f5e419b5de8
一. 在宿主機(jī)創(chuàng)建目錄
無需指定特殊權(quán)限
mkdir /opt/docker/gogs/
二. 運行容器
在此之前,先在mysql中創(chuàng)建gogs數(shù)據(jù)庫. [注意,一定要先將mysql數(shù)據(jù)庫的默認(rèn)字符編碼設(shè)置為utf8, 否則, gogs在自動創(chuàng)建表時, 會出現(xiàn)問題]
docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs
參數(shù)說明:
-d: 后臺方式運行容器
-p: 端口映射, 將容器的22端口映射到宿主機(jī)的10022端口, 將容器的3000端口映射到宿主機(jī)的10080端口
--name: 指定容器名稱
--net: 將容器加入backend網(wǎng)絡(luò), 目的是為了能夠連接backend網(wǎng)絡(luò)中的mysql數(shù)據(jù)庫
-v: 數(shù)據(jù)卷掛載, 用于將容器和數(shù)據(jù)分離
三. 打開瀏覽器,進(jìn)行g(shù)ogs配置
http://宿主機(jī)ip:10080
如: http://localhost:10080
注意兩個配置:
-
數(shù)據(jù)庫主機(jī)
值應(yīng)該是:mysql57:3306
這個是docker中連接另一個容器中服務(wù)的方式(上一篇文章在啟動mysql容器時,將mysql加入backend網(wǎng)絡(luò)的目的就在于此). -
應(yīng)用URL
, 這個url應(yīng)該是宿主機(jī)地址:10080
點擊確認(rèn), 之后會轉(zhuǎn)到一個無法連接的頁面, 是因為 剛才的應(yīng)用URL
指定的端口是3000, 但訪問宿主機(jī)的3000并無意義, 必須訪問10080才行, 為什么是10080, 因為容器啟動時, 建立了-p 10080:3000
的映射.
下一步我們將通過修改配置文件的方式修正這個問題
四.修改配置文件
配置文件路徑: /opt/docker/gogs/gogs/conf/app.ini
APP_NAME = Gogs
RUN_USER = git
RUN_MODE = prod
[database]
DB_TYPE = mysql
HOST = mysql57:3306 ## 注意這里, 是docker中連接通網(wǎng)絡(luò),其它容器服務(wù)的方式
NAME = gogs
USER = root
PASSWD = root
SSL_MODE = disable
PATH = data/gogs.db
[repository]
ROOT = /data/git/gogs-repositories
[server]
DOMAIN = localhost
HTTP_PORT = 3000
ROOT_URL = http://localhost:10080/ ## 這個就是圖形界面的應(yīng)用URL的值
DISABLE_SSH = false
SSH_PORT = 10022
START_SSH_SERVER = false
OFFLINE_MODE = false
[mailer]
ENABLED = false
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = false
ENABLE_CAPTCHA = true
REQUIRE_SIGNIN_VIEW = false
[picture]
DISABLE_GRAVATAR = false
ENABLE_FEDERATED_AVATAR = true
[session]
PROVIDER = file
[log]
MODE = file
LEVEL = Info
ROOT_PATH = /app/gogs/log
[security]
INSTALL_LOCK = true
SECRET_KEY = nV8DDKEN2IExVjr
修改完之后, 保存, 重啟gogs容器,再訪問
http://localhost:10080
即可看到登錄, 界面了, 點擊注冊, 注冊成功后的第一個用戶, 會成為超管用戶.
五. 測試
- 使用gogs的圖形界面,創(chuàng)建一個項目. 然后在本地, pull下來, 修改之后再push上去. 然后看界面中是否有你提交的結(jié)果
- 使用如下命令, 停止并刪除容器
docker stop gogs
docker rm gogs
- 再次啟動容器
docker run -d -p 10022:22 -p 10080:3000 \
--name=gogs --net=backend \
-v /opt/docker/gogs/:/data \
gogs/gogs
- 訪問 http://localhost:10080, 登錄查看之前創(chuàng)建是否依然存在, 如果存在, 則你已成功完成gogs部署了