Вот образ, который я использую.
Я назвал его posgres_test
Если я запускаю изображение отдельно
docker run -i -t -v="test_volume:/var/lib/postgresql" -p 5432:5432 posgres_test
Я могу получить к нему доступ с помощью
psql -h 192.168.99.100 -p 5432 -U pguser -W pgdb
Или я могу получить к нему доступ с помощью своего приложения golang
// host is set to postgres
db, err := sql.Open("postgres", "postgres://pguser:[email protected]:5432/pgdb")
// table test_db is manually created.
rows, err := db.Query("SELECT name FROM test_db WHERE)
Однако, если я использую docker compose
docker-compose.yml
version: "2"
services:
postgres:
image: my_image/postgresql:9.3
volumes:
- test_volume:/var/lib/postgresql
ports:
- "5432:5432"
web:
image: my-golang-app4
ports:
- "8080:8080"
volumes:
test_volume: {}
Я получаю следующее
[email protected] ERROR: relation "test_db" does not exist at character 15
Я точно знаю, что test_db
существует в test_volume
, поскольку
docker run -i -t -v="test_volume:/var/lib/postgresql" -p 5432:5432 posgres_test
psql -h 192.168.99.100 -p 5432 -U pguser -W pgdb
\dt
покажет созданную мной таблицу
Но похоже, что мое приложение в docker compose не может найти его
Может кто-нибудь помочь мне?