首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不能访问数据库端口

不能访问数据库端口
EN

Stack Overflow用户
提问于 2018-10-31 13:45:38
回答 2查看 1K关注 0票数 1

文档:

代码语言:javascript
复制
FROM anapsix/alpine-java:8_server-jre_unlimited
# copy application
COPY server.jar /opt/test/
COPY application.yml /opt/test/

# expose server ports
EXPOSE 8080 18080

# Run via dumb-init
WORKDIR /opt/test
ENTRYPOINT ["java"]
CMD ["-jar", "server.jar"]

停靠-编写文件:

代码语言:javascript
复制
services:
  backend-server:
    image: test.com/server:latest
    build: .
    depends_on:
      - database-server
    ports:
        - "127.0.0.1:8080:8080"
        - "127.0.0.1:18080:18080"
  database-server:
    image: postgres:9.6
    ports:
        - "127.0.0.1:5432:5432"
    environment:
      - POSTGRES_PASSWORD testtest

应用程序属性文件:

代码语言:javascript
复制
spring:
  datasource:
    # use default user/database created by PostgreSQL Docker image upon startup
    url: jdbc:postgresql://localhost/postgres
    username: postgres
    password: testtest
    driver-class-name: org.postgresql.Driver

当我运行对接-组合时,它将创建一个数据库容器和一个连接到数据库容器的应用程序容器。

但是spring应用程序容器在引导过程中遇到了一些错误问题:

org.postgresql.util.PSQLException:连接到本地主机:5432被拒绝。检查主机名和端口是否正确,以及port主机是否接受TCP/IP连接。

docker container ls显示数据库正在运行,如果我直接运行spring应用程序,我可以访问它。

代码语言:javascript
复制
a295bfd16e2c        postgres:9.6        "docker-entrypoint.s…"   About a minute ago   Up About a minute   127.0.0.1:5432->5432/tcp   server_database-server_1

那我搞砸的问题是什么?

解决方案我找到了

代码语言:javascript
复制
services:
  backend-server:
    image: test.com/server:latest
    build: .
    environment:
      - SPRING_DATASOURCE_URL=jdbc:postgresql://database-server/postgres
    depends_on:
      - database-server
    ports:
        - 8080:8080
        - 18080:18080
  database-server:
    image: postgres:9.6
    ports:
        - 5432:5432
    environment:
      - POSTGRES_PASSWORD testtest

但是,我仍然无法从我的计算机的localhost:8080访问应用程序,甚至容器的日志也显示

2018-10-31 15:02:40.881 INFO 1--主o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat从端口启动: 8080 (http)和上下文路径'‘ 2018-10-31 15:02:40.881 INFO 1--主com.test.server.Application :在12.823秒内启动应用程序(JVM运行13.235)

EN

回答 2

Stack Overflow用户

发布于 2018-10-31 14:02:53

我建议按如下所示修改docker-come.yml文件并测试它

代码语言:javascript
复制
services:


backend-server:
    image: test.com/server:latest
    build: .
    depends_on:
      - database-server
    ports:
        - 8080:8080
        - 18080:18080
  database-server:
    image: postgres:9.6
    ports:
        - 5432:5432
    environment:
      - POSTGRES_PASSWORD testtest
票数 0
EN

Stack Overflow用户

发布于 2018-10-31 14:14:22

代码语言:javascript
复制
services:
  backend-server:
    image: test.com/server:latest
    build: .
    depends_on:
      - database-server
    ports:
        - "127.0.0.1:8080:8080" #change to 8080:8080 without ""and by default set to local so you dont need add local ip
        - "127.0.0.1:18080:18080"  #change to 18080:18080 without ""and by default set to local so you dont need add local ip
  database-server:
    image: postgres:9.6
    ports:
        - "127.0.0.1:5432:5432" #change to 5432:5432 without ""and by default set to local so you dont need add local ip
    environment:
      - POSTGRES_PASSWORD testtest
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53084886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档