拉去镜像

maxkey 门户前端
dokcer pull maxkeytop/maxkey-frontend:4.1.12
maxkey 后端
docker pull maxkeytop/maxkey:4.1.12
maxkey-mgt 管理前端
docker pull maxkeytop/maxkey-mgt-frontend:4.1.12
maxkey-mgt 管理后端
docker pull maxkeytop/maxkey-mgt:4.1.12

docker-compose.yml

docker-compose.yml

提前解释

原来已经用docker安装了mysql 直接沿用(保证两者在同一个网络下:universal-network)

内容:

services:
  maxkey:
    image: maxkeytop/maxkey:4.1.12
    container_name: maxkey4.1.12
    restart: unless-stopped
    environment:
      TZ: "Asia/Shanghai"
      JAVA_TOOL_OPTIONS: "-Djava.awt.headless=true"
      DATABASE_HOST: "mysql8.0.43"
      DATABASE_PORT: "3306"
      DATABASE_NAME: "maxkey"
      DATABASE_USER: "root"
      DATABASE_PWD: "Admin@123"
    ports:
      - "9527:9527"
    volumes:
      - ./maxkey-config/application.yml:/usr/local/maxkey/config/application.yml
      - ./maxkey-logs:/maxkey/logs
    logging:
      driver: "json-file"
      options:
        max-size: "100m"
        max-file: "3"
    networks:
      - universal-network

  # 用户门户前端(登录页面、应用门户,内置nginx)
  maxkey-frontend:
    image: maxkeytop/maxkey-frontend:4.1.12
    container_name: maxkey-frontend4.1.12
    restart: unless-stopped
    environment:
      TZ: "Asia/Shanghai"
      # 指向后端maxkey服务名(容器内部DNS)
      API_BASE_URL: "http://maxkey:9527/sign"
    ports:
      - "8527:8527"
    volumes:
      - ./maxkey-font-nginx/config/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - maxkey
    networks:
      - universal-network

  # 管理后端API【修复验证码关键点】
  maxkey-mgt:
    image: maxkeytop/maxkey-mgt:4.1.12
    container_name: maxkey-mgt4.1.12
    restart: unless-stopped
    environment:
      TZ: "Asia/Shanghai"
      # 关键!缺少这一行验证码无法渲染
      JAVA_TOOL_OPTIONS: "-Djava.awt.headless=true"
      DATABASE_HOST: "mysql8.0.43"
      DATABASE_PORT: "3306"
      DATABASE_NAME: "maxkey"
      DATABASE_USER: "root"
      DATABASE_PWD: "Admin@123"
    ports:
      - "9526:9526"
    volumes:
      - ./maxkey-mgt-config/application.yml:/usr/local/maxkey-mgt/config/application.yml
      - ./maxkey-mgt-logs:/usr/local/maxkey-mgt/logs
    depends_on:
      - maxkey
    networks:
      - universal-network

  maxkey-mgt-frontend:
    image: maxkeytop/maxkey-mgt-frontend:4.1.12
    container_name: maxkey-mgt-frontend4.1.12
    restart: unless-stopped
    environment:
      TZ: "Asia/Shanghai"
      API_BASE_URL: "http://maxkey-mgt:9526"
    ports:
      - "8526:80"
    volumes:
      - ./mgt-nginx/default.conf:/etc/nginx/conf.d/default.conf
    depends_on:
      - maxkey-mgt
    networks:
      - universal-network

networks:
  universal-network:
    external: true
    name: universal-network
./maxkey-config/application.yml
maxkey:
  login:
    # 关闭门户登录验证码
    captcha: true

spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: ${DATABASE_USER}
    password: ${DATABASE_PWD}
    driver-class-name: com.mysql.cj.jdbc.Driver
./maxkey-font-nginx/config/default.conf
server {
    listen 8527;
    server_name _;
    root /usr/share/nginx/html;
    index index.html;

    # 登录门户静态页面
    location / {
        try_files $uri $uri/ /index.html;
    }

    # 核心:所有 /sign/ 接口直接转发到 maxkey 认证核心服务
    location /sign/ {
        proxy_pass http://maxkey:9527/sign/;
        proxy_set_header Host $host:$server_port;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Forwarded-Port $server_port;
        # 验证码图片不要gzip,避免图片异常
        gzip off;
    }
}
./maxkey-mgt-config/application.yml
maxkey:
  mgt:
    login:
      # true=启用验证码;false=关闭管理后台登录验证码
      captcha: true
spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: ${DATABASE_USER}
    password: ${DATABASE_PWD}
    driver-class-name: com.mysql.cj.jdbc.Driver
./mgt-nginx/default.conf
server {
    listen 80;
    server_name _;
    root /usr/share/nginx/html;
    index index.html;

    # 前端静态资源
    location /maxkey-mgt {
        try_files $uri $uri/ /maxkey-mgt/index.html;
    }

    # 关键:验证码接口转发
    location /maxkey-mgt-api/ {
        proxy_pass http://maxkey-mgt:9526/maxkey-mgt-api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 图片流不压缩,防止损坏
        gzip off;
    }
}

启动

docker-compose up -d
管理端访问地址 (账号/密码:admin/maxkey)
http://localhost:8526/maxkey-mgt/#/passport/login

门户访问地址(账号/密码:admin/maxkey)

更多推荐