如何在没有IP地址的情况下访问postgres-docker容器和其他docker容器? 我想通过使用myweb将数据存储在postgres中。在给定主机(例如localhost:5432 / db)的jar中。
这是我的撰写文件:
version: "3" services: myweb: build: ./myweb container_name: app ports: - "8080:8080" - "9090:9090" networks: - front-tier - back-tier depends_on: - "postgresdb" postgresdb: build: ./mydb image: ppk:postgres9.5 volumes: - dbdata:/var/lib/postgresql ports: - "5432:5432" networks: - back-tier volumes: dbdata: {} networks: front-tier: back-tier:
答案 0 :(得分:1)
使用localhost:5432/db..
连接字符串代替postgresdb:5432/db..
。
默认情况下,容器的主机名与服务名称相同。
这是我的最小工作示例,该示例将Java客户端(boxfuse / flyway)与postgres服务器连接。最重要的部分是健康检查,该操作将myweb
容器的启动延迟到postgres准备接受连接的时间。
请注意,可以由docker-compose up
直接执行,它没有任何其他依赖性。这两个图像均来自docker hub。
version: '2.1'
services:
myweb:
image: boxfuse/flyway
command: -url=jdbc:postgresql://postgresdb/postgres -user=postgres -password=123 info
depends_on:
postgresdb:
condition: service_healthy
postgresdb:
image: postgres
environment:
- POSTGRES_PASSWORD=123
healthcheck:
test: "pg_isready -q -U postgres"