这是我正在使用的image。
我把它命名为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:pguser@postgres: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: {}
我得到了以下信息
pguser@pgdb 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中的应用程序似乎找不到它
有人能帮帮我吗?
https://stackoverflow.com/questions/42107364
复制相似问题