1. 程式人生 > 其它 >Apollo——docker-compose執行Apollo

Apollo——docker-compose執行Apollo

前言

本地開發需要Apollo,記錄下寫的docker-compose的指令碼

內容

目錄結構

apollo/
├── docker-compose.yml
└── sql
    ├── apolloconfigdb.sql
    └── apolloportaldb.sql

docker-compose.yml

192.168.223.10為本地虛機內網IP

version: '3'
services:
  apollo-configservice:
    image: apolloconfig/apollo-configservice:latest
    container_name: apollo-configservice
    restart: always
    ports:
      - "8080:8080"
    volumes:
      - /tmp/logs:/opt/logs
    environment:
      SERVER_PORT: 8080
      EUREKA_INSTANCE_IP_ADDRESS: 192.168.223.10
      EUREKA_INSTANCE_HOME_PAGE_URL: "http://192.168.223.10:8080"
      EUREKA_INSTANCE_PREFER_IP_ADDRESS: false
      SPRING_DATASOURCE_URL: 'jdbc:mysql://192.168.223.10:13306/ApolloConfigDB?characterEncoding=utf8'
      SPRING_DATASOURCE_USERNAME: 'root'
      SPRING_DATASOURCE_PASSWORD: '123456'
    depends_on:
      - apollo-db

  apollo-adminservice:
    image: apolloconfig/apollo-adminservice:latest
    container_name: apollo-adminservice
    restart: always
    ports:
      - "8090:8090"
    volumes:
      - /tmp/logs:/opt/logs
    environment:
      SERVER_PORT: 8090
      EUREKA_INSTANCE_IP_ADDRESS: 192.168.223.10
      EUREKA_INSTANCE_HOME_PAGE_URL: "http://192.168.223.10:8090"
      EUREKA_INSTANCE_PREFER_IP_ADDRESS: false
      SPRING_DATASOURCE_URL: 'jdbc:mysql://192.168.223.10:13306/ApolloConfigDB?characterEncoding=utf8'
      SPRING_DATASOURCE_USERNAME: 'root'
      SPRING_DATASOURCE_PASSWORD: '123456'
    depends_on:
      - apollo-configservice

  apollo-db:
    image: mysql:5.7
    container_name: apollo-db
    restart: always
    command: --default-authentication-plugin=mysql_native_password
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123456
    depends_on:

      - apollo-dbdata
    ports:
      - "13306:3306"
    volumes:
      - ./sql:/docker-entrypoint-initdb.d
    volumes_from:
      - apollo-dbdata

  apollo-dbdata:
    image: alpine:latest
    container_name: apollo-dbdata
    volumes:
      - /var/lib/mysql


  apollo-portal:
    image: apolloconfig/apollo-portal:latest
    container_name: apollo-portal
    restart: always
    ports:
      - "8070:8070"
    volumes:
      - /tmp/logs:/opt/logs
    environment:
      DS_URL: "jdbc:mysql://192.168.223.10:13306/ApolloPortalDB?characterEncoding=utf8"
      DS_USERNAME: "root"
      DS_PASSWORD: "123456"
      APOLLO_PORTAL_ENVS: "DEV"
      DEV_META: "http://192.168.223.10:8080"
      #SERVER_SERVLET_CONTEXT_PATH: "/apollo"
    depends_on:
      - apollo-adminservice

配置eureka.service.url

  • 將eureka.service.url修改成自己的虛機地址
  • 修改後apollo-configservice會從DB中讀取

檢視服務

瀏覽器訪問192.168.223.10:8070