2015-04-04 61 views
1

我在CentOS 7上運行GitLab CE Omnibus軟件包的最新版本。在同一臺機器上,我有其他Postgres數據庫正在運行。例如,我似乎無法將構建的Postgres實例的端口更改爲5433。Gitlab不會在替代端口上創建Postgres實例

我已經添加兩個以下行/еtc/gitlab/gitlab.rb

postgresql['enable'] = true 
postgresql['port'] = 5433 

我已經執行以下命令:

# gitlab-ctl reconfigure 
# gitlab-rake gitlab:setup 

其中第二個失敗,並以下錯誤:

Couldn't create database for {"adapter"=>"postgresql", "encoding"=>"unicode", "database"=>"gitlabhq_production", "pool"=>10, "username"=>"gitlab", "password"=>nil, "host"=>nil, "port"=>5433, "socket"=>nil} 
-- enable_extension("plpgsql") 
rake aborted! 
PG::Error: could not connect to server: No such file or directory 
     Is the server running locally and accepting 
     connections on Unix domain socket "/tmp/.s.PGSQL.5433"? 
+0

我不使用gitlab,但我期望/ etc/gitlab/gitlab/rb告訴gitlab PostgreSQL的位置是配置爲偵聽。我*不會*期望該文件配置* PostgreSQL *。要告訴PostgreSQL *在哪裏聽,請更改postgresql.conf。 – 2015-04-04 11:00:20

+0

這就是爲什麼有'postgresql ['enable'] = true'選項,它指定gitlab應該使用它自己的Postgres安裝。 – ax1mx2 2015-04-04 11:03:14

+0

我閱讀[安裝文檔](http://doc.gitlab.com/ce/install/installation.html)。我看到的並不是gitlab自帶的* PostgreSQL安裝;這只是一個普通的PostgreSQL安裝。找到postgresql.conf文件,更改'port'設置,然後重新啓動PostgreSQL。查看[連接和身份驗證](http://www.postgresql.org/docs/current/static/runtime-config-connection.html)(如果您始終沒有管理PostgreSQL,這有點棘手)。 – 2015-04-04 11:17:50

回答

2

我不使用gitlab,所以我查看了installation docs。 GitLab沒有「自己的」PostgreSQL安裝。它使用PostgreSQL的標準安裝(基於軟件包的安裝)。

sudo apt-get install -y postgresql postgresql-client libpq-dev 

所以你可以通過兩種不同的方式來解決你的問題。由於您已經安裝了PostgreSQL並且在端口5432(?)上運行,因此您可以將GitLab配置爲使用實例。

或者您可以設置PostgreSQL的新安裝以偵聽端口5433(在postgresql.conf中設置),並配置GitLab使用實例。

不管你走哪條路,你必須得到配置(PostgreSQL系統)和說話配置(GitLab)來搭配,你必須讓他們對認證一致。 PostgreSQL通過配置文件pg_hba.conf控制認證。 Ruby on Rails通過配置文件database.yml控制認證。我認爲GitLab使用database.yml和gitlab.rb的一些組合,但我不確定。

PostgreSQL和Rails都會編寫日誌文件,這些文件在追蹤錯誤消息的根本原因時很有用。 PostgreSQL設置在postgresql.conf中(搜索「錯誤報告」)。 Ubuntu Linux下的版本9.4的默認日誌文件是/var/log/postgresql/postgresql-9.4-main.log; CentOS可能會使用不同的目錄。 Rails寫入項目的日誌/目錄(與應用程序,配置,測試等級相同)

+0

那麼,這是我不願意介入的另一個解決方案,雖然它可能會更好。事情的配置方式似乎太多了。使用'/еtc/ gitlab/gitlab.rb'文件就是其中之一,並且我繼續認爲GitLab包中有一個PostgreSql數據庫,只是因爲它是9.3版本而我的版本是9.4。我想我已經按照自己的方式進行了整理。您只需使用命令'gitlab-ctl restart'重新啓動捆綁的數據庫實例,並運行'gitlab-rake gitlab:setup'。這一次它發現它自己的數據庫實例。 – ax1mx2 2015-04-05 12:37:52

+0

我確定GitLab Omnibus包中有一個PostgreSQL版本。我只是說這個版本不是「自己的」版本。這是一個標準的基於軟件包的PostgreSQL安裝。 (根據文檔,至少)。您計算機上可以訪問PostgreSQL的任何其他軟件都可以配置爲訪問它,在其中創建新的數據庫等。*有許多必須匹配的設置(主機 - 不同的tcp連接和unix套接字 - 端口,數據庫名稱,用戶名,密碼,在三個默認的Rails環境中,每個都有所不同),但這對於課程來說是相同的。 – 2015-04-05 13:10:50

+0

Yeap,你是對的,我已經知道了。但是GitLab不會從'yum'開箱即可安裝任何PostgreSQL包。當然,除了GitLab之外,我在一個沒有安裝定製軟件的全新CentOS7安裝中檢查了兩次和三次。無論如何,非常感謝你。 – ax1mx2 2015-04-05 13:20:04