摘要:最近在用跑,也遇到了一些坑,這里記錄一下。首先項(xiàng)目然后就開(kāi)始報(bào)錯(cuò)了這里報(bào)錯(cuò)是說(shuō)找不到文件,但我本地運(yùn)行是沒(méi)問(wèn)題的。同樣的,還需要把用戶(hù)名修改成和鏡像預(yù)定的一致。打開(kāi)最新生成的文件。本人菜鳥(niǎo)一枚,如有錯(cuò)誤之處,敬請(qǐng)指正,謝謝
最近在用docker跑rails,也遇到了一些坑,這里記錄一下。
首先build項(xiàng)目:
docker-compose build
然后就開(kāi)始報(bào)錯(cuò)了:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
這里報(bào)錯(cuò)是說(shuō)找不到 /var/run/postgresql/.s.PGSQL.5432 文件,但我本地運(yùn)行是沒(méi)問(wèn)題的。于是去找docker從入門(mén)到實(shí)踐這本書(shū)的docker rails 例子, 地址在這里:https://yeasy.gitbooks.io/doc...,發(fā)現(xiàn)我的database.yml文件不對(duì)。我的是這樣的:
default: &default adapter: postgresql encoding: unicode`請(qǐng)輸入代碼` # For details on connection pooling, see Rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
Rails 默認(rèn)讀取的數(shù)據(jù)庫(kù)目標(biāo)是 localhost ,我們需要手動(dòng)指定容器的 db 。同樣的,還需要把用戶(hù)名修改成和 postgres 鏡像預(yù)定的一致。 打開(kāi)最新生成的 database.yml 文件。用以下內(nèi)容替換:
default: &default adapter: postgresql encoding: unicode # For details on connection pooling, see Rails configuration guide # http://guides.rubyonrails.org/configuring.html#database-pooling pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %> username: postgres host: db
這樣再運(yùn)行docker-compose build,成功build! 然后再跑起來(lái)docker-compose up,悲劇的又報(bào)錯(cuò)了:
ActiveRecord::NoDatabaseError (FATAL: database "heroku_app_development" does not exist
提示沒(méi)有創(chuàng)建heroku_app_development數(shù)據(jù)庫(kù),OK,那就創(chuàng)建一個(gè):
sudo docker ps #列出所有容器
sudo docker exec -it [container ID] /bin/bash #進(jìn)入postgres
sudo su - postgres #切換到postgres用戶(hù),因?yàn)檫@個(gè)用戶(hù)有createdb權(quán)限
ceratedb heroku_app_development #heroku_app_development 創(chuàng)建完成!
再運(yùn)行docker-compose up,又報(bào)錯(cuò):
Migrations are pending. To resolve this issue, run:
bin/rails db:migrate RAILS_ENV=development
railser應(yīng)該很熟悉,數(shù)據(jù)庫(kù)遷移,進(jìn)入web容器:
sudo docker exec -it [container ID] /bin/bash #進(jìn)入web容器
rails db:migrate #遷移成功!
至此,程序可以在docker上跑起來(lái)了。本人菜鳥(niǎo)一枚,如有錯(cuò)誤之處,敬請(qǐng)指正,謝謝!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/27155.html
摘要:最近研究基于的開(kāi)源框架,其中構(gòu)建需要使用插件。為例,安裝以下包即可系列則請(qǐng)安裝初次安裝后,默認(rèn)生成一個(gè)名為的數(shù)據(jù)庫(kù)和一個(gè)名為的數(shù)據(jù)庫(kù)用戶(hù)。注意,不要往這個(gè)數(shù)據(jù)庫(kù)中添加數(shù)據(jù),這個(gè)數(shù)據(jù)庫(kù)之所以稱(chēng)為模板,就說(shuō)明它是用來(lái)派生用的。 最近研究基于 GeoServer 的開(kāi)源 GIS 框架,其中構(gòu)建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些時(shí)間學(xué)習(xí)...
摘要:最近研究基于的開(kāi)源框架,其中構(gòu)建需要使用插件。為例,安裝以下包即可系列則請(qǐng)安裝初次安裝后,默認(rèn)生成一個(gè)名為的數(shù)據(jù)庫(kù)和一個(gè)名為的數(shù)據(jù)庫(kù)用戶(hù)。注意,不要往這個(gè)數(shù)據(jù)庫(kù)中添加數(shù)據(jù),這個(gè)數(shù)據(jù)庫(kù)之所以稱(chēng)為模板,就說(shuō)明它是用來(lái)派生用的。 最近研究基于 GeoServer 的開(kāi)源 GIS 框架,其中構(gòu)建 GIS database 需要使用 PostgreSQL + PostGIS 插件。花了些時(shí)間學(xué)習(xí)...
摘要:?jiǎn)栴}現(xiàn)象最近兩個(gè)月碰到三次,莫名的無(wú)法連接的情況,具體錯(cuò)誤信息如下前兩次,自己瞎鼓搗,后面就好了,然后也沒(méi)在意。然后今天早上死機(jī)重啟后,這個(gè)問(wèn)題又出現(xiàn)了,然后各種重裝重啟系統(tǒng)依然無(wú)解。最后,終于啟動(dòng)了。 問(wèn)題現(xiàn)象 最近兩個(gè)月碰到三次,莫名的 PG (PostgreSQL) 無(wú)法連接的情況,具體錯(cuò)誤信息如下: psql: could not connect to server: No s...
閱讀 2991·2021-11-25 09:43
閱讀 3636·2021-08-31 09:41
閱讀 1247·2019-08-30 15:56
閱讀 2136·2019-08-30 15:55
閱讀 2998·2019-08-30 13:48
閱讀 2821·2019-08-29 15:15
閱讀 989·2019-08-29 15:14
閱讀 2661·2019-08-28 18:26