Biraz sorunla karşılaştım ve birisinin beni doğru yönde gösterebileceğini umuyorum. Im bir Raylar + Postgres çoklu kabı koşu ve ben LoadBalancer IP'sini erişmeye çalıştıklarında onlar günlüklerinde bu gösterir raylar hariç, ince başlama:Postgres issue - Google Container Engine'de Ruby on Rails (Postgres)
PG::ConnectionBad (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"?):
Benim iki konteyner pod dosya ve benim database.yml vardır aşağıdaki gibi:
RAYLARI POD
apiVersion: v1
kind: Pod
metadata:
name: cartelhouse
labels:
name: cartelhouse
spec:
containers:
- image: gcr.io/xyz/cartelhouse:v6
name: cartelhouse
env:
- name: POSTGRES_PASSWORD
# Change this - must match postgres.yaml password.
value: mypassword
- name: POSTGRES_USER
value: rails
ports:
- containerPort: 80
name: cartelhouse
volumeMounts:
# Name must match the volume name below.
- name: cartelhouse-persistent-storage
# Mount path within the container.
mountPath: /var/www/html
volumes:
- name: cartelhouse-persistent-storage
gcePersistentDisk:
# This GCE persistent disk must already exist.
pdName: rails-disk
fsType: ext4
POSTGRES POD
apiVersion: v1
kind: Pod
metadata:
name: postgres
labels:
name: postgres
spec:
containers:
- name: postgres
image: postgres
env:
- name: POSTGRES_PASSWORD
value: mypassword
- name: POSTGRES_USER
value: rails
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
ports:
- containerPort: 5432
name: postgres
volumeMounts:
- name: postgres-persistent-storage
mountPath: /var/lib/postgresql/data
volumes:
- name: postgres-persistent-storage
gcePersistentDisk:
# This disk must already exist.
pdName: postgres-disk
fsType: ext4
database.yml DOSYA
production:
<<: *default
adapter: postgresql
encoding: unicode
database: app_production
username: <%= ENV['PG_ENV_POSTGRES_USER'] %>
password: <%= ENV['PG_ENV_POSTGRES_PASSWORD'] %>
host: <%= ENV['PG_PORT_5432_TCP_ADDR'] %>
Ben, onun bir bağlantı sorunu varsayalım veya PGDATA yolları ile ilgili bir şey belirttiğim?
Teşekkürler Alex, yerel IP adresini veritabanı yapılandırmasına kodlamaktan mı bahsediyorsunuz? Bir deneyecek ama daha dinamik bir şey umuyordum .. –
Hayır, Rails uygulamanızı, DNS adını kullanarak veritabanına konuşmak için yapılandırmaktan bahsediyorum. Postgres bölmesi için bir hizmet oluşturursanız, Rails'e postgres hizmetinin adını kullanarak DB'ye bağlanmasını söyleyebilirsiniz. Şu anda DB'nin aynı makinede çalıştığını varsayıyormuş gibi görünüyor (dolayısıyla bir Unix alan soketinin kullanılması denendi). –