关于docker部署nacos,网关连接不上nacos。已解决谢谢

我直接使用java -jar是可以启动运行连接nacos,用dockerfile不行,日志打印127.0.0.1:8848,我配置文件是公网ip方式,不知道为啥

docker-compose:

version: '3.8'
services:
  yunnian-nacos:
    container_name: yunnian-nacos
    image: nacos/nacos-server
    build:
      context: ./nacos
    environment:
      - MODE=standalone
    volumes:
      - ./nacos/logs/:/home/nacos/logs
      - ./nacos/conf/application.properties:/home/nacos/conf/application.properties
    ports:
      - "8848:8848"
      - "9848:9848"
      - "9849:9849"
    depends_on:
      - yunnian-mysql
  yunnian-mysql:
    container_name: yunnian-mysql
    image: mysql:5.7
    build:
      context: ./mysql
    ports:
      - "3306:3306"
    volumes:
      - ./mysql/conf:/etc/mysql/conf.d
      - ./mysql/logs:/logs
      - ./mysql/data:/var/lib/mysql
    command: [
      'mysqld',
      '--innodb-buffer-pool-size=80M',
      '--character-set-server=utf8mb4',
      '--collation-server=utf8mb4_unicode_ci',
      '--default-time-zone=+8:00',
      '--lower-case-table-names=1'
    ]
    environment:
      MYSQL_DATABASE: 'root'
      MYSQL_ROOT_PASSWORD: 123456
  yunnian-redis:
    container_name: yunnian-redis
    image: redis
    build:
      context: ./redis
    ports:
      - "6379:6379"
    volumes:
      - ./redis/conf/redis.conf:/home/yunnian/redis/redis.conf
      - ./redis/data:/data
    command: redis-server /home/yunnian/redis/redis.conf
  yunnian-nginx:
    container_name: yunnian-nginx
    image: nginx
    build:
      context: ./nginx
    ports:
      - "80:80"
      - "88:88"
    volumes:
      - ./nginx/html/dist:/home/yunnian/projects/yunnian-ui
      - ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/logs:/var/log/nginx
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - yunnian-gateway
    links:
      - yunnian-gateway
  yunnian-gateway:
    container_name: yunnian-gateway
    build:
      context: ./yunnian/gateway
      dockerfile: dockerfile
    ports:
      - "1080:1080"
    depends_on:
      - yunnian-redis
    links:
      - yunnian-redis
  yunnian-auth:
    container_name: yunnian-auth
    build:
      context: ./yunnian/auth
      dockerfile: dockerfile
    ports:
      - "1200:1200"
    depends_on:
      - yunnian-redis
    links:
      - yunnian-redis
  yunnian-modules-system:
    container_name: yunnian-modules-system
    build:
      context: ./yunnian/modules/system
      dockerfile: dockerfile
    ports:
      - "1201:1201"
    depends_on:
      - yunnian-redis
      - yunnian-mysql
    links:
      - yunnian-redis
      - yunnian-mysql

dockerfile:

# 基础镜像
FROM  openjdk:8-jre
# author
MAINTAINER yunnian

# 挂载目录
VOLUME /home/yunnian
# 创建目录
RUN mkdir -p /home/yunnian
# 指定路径
WORKDIR /home/yunnian
# 复制jar文件到路径
COPY ./jar/yunnian-gateway.jar /home/yunnian/yunnian-gateway.jar
# 启动网关服务
ENTRYPOINT ["java","-jar","yunnian-gateway.jar"]

bootstrap.properties:

server.port=1080
spring.application.name=yunnian-gateway
spring.profiles.active=dev
spring.cloud.nacos.discovery.ip-type="IPV4"
spring.cloud.nacos.discovery.server-addr=8.136.114.59:8848
spring.cloud.nacos.discovery.namespace=215face8-3236-4fb8-b9a7-40cf4b2134dc
spring.cloud.nacos.config.server-addr=8.136.114.59:8848
spring.cloud.nacos.config.namespace=215face8-3236-4fb8-b9a7-40cf4b2134dc
spring.cloud.nacos.config.file-extension=yml
spring.cloud.nacos.config.shared-configs=application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

ip漏了

nacos不是有直接的docker镜像,你咋还自己写dockerfile了

参考看一下呢?
Nacos微服务注册地址为Docker内网IP的解决办法_nacos中 使用docker-compose部署的服务ip问题-CSDN博客

1 个赞

网络安全快问快答

2 个赞

你监听 127.0.0.1 就注定只能本机了。要监听 0.0.0.0

2 个赞