用Cloudflare tunnel 隧道部署imaotai

引言

imaotai 是个好玩的东西,反正预约了好久也没有效果。以前是借助宝塔面板来部署,前置条件多,有点复杂。作者完善了docker 部署,这个正好是我喜欢的,就折腾了一下,有个小坑,就是配置不能太低,特别是内存,1G RAM,会碰到很多问题,数据库没有成功导入,redis 运行经常来不及,会引起系统接口异常404之类的,所以1C2G 是最低配置。再加上交换内存,以防万一。还有就是mysql,redis 版本尽可能用新版本,旧版支持有限。

部署

docker-compose.yaml

---

networks:
  # campus_net:
  #  driver: bridge
  frontend:
    external: true
  backend:
    external: true
    
services:
  campus-mysql:
    container_name: campus-mysql
    image: mysql:latest
    build:
      context: .
      dockerfile: mysql-dockerfile
    # ports:
    #  - "13306:3306"
    expose:
      - 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:
      WAIT_HOSTS: campus-mysql:3306
      MYSQL_DATABASE: 'campus_imaotai'
      MYSQL_ROOT_PASSWORD: oddfar_imaotai
    networks:
    #  - campus_net
       - backend
    #platform: linux/x86_64
    restart: unless-stopped
  campus-redis:
    container_name: campus-redis
    image: redis:stable-alpine
    build:
      context: .
      dockerfile: redis-dockerfile
    # ports:
    #  - "16379:6379"
    expose:
      - 6379
    volumes:
      - ./conf/redis.conf:/home/campus/redis/redis.conf
      - ./redis/data:/data
    command: redis-server /home/campus/redis/redis.conf
    networks:
    #  - campus_net
      - backend
    restart: unless-stopped
  campus-nginx:
    container_name: campus-nginx-gus
    image: nginx
    build:
      context: .
      dockerfile: nginx-dockerfile
    # ports:
    #  - "80:80"
    expose:
      - 80
    volumes:
      - ./html/dist:/home/campus/projects/campus-ui
      - ./conf/nginx.conf:/etc/nginx/nginx.conf
      - ./nginx/logs:/var/log/nginx
      - ./nginx/conf.d:/etc/nginx/conf.d
    depends_on:
      - campus-server
    networks:
      # - campus_net
      - frontend
      - backend
    # links:
      # - campus-server
    restart: unless-stopped
  campus-server:
    container_name: campus-server
    build:
      context: .
      dockerfile: campus-dockerfile
    # ports:
    #  - "8160:8160"
    expose:
      - 8160
    volumes:
      - ./campus/logs:/home/campus/logs
      - ./campus/uploadPath:/home/campus/uploadPath
      - ./campus/conf:/home/campus/conf
    depends_on:
      - campus-mysql
      - campus-redis
    # links:
      # - campus-mysql
      # - campus-redis
    environment:
      TZ: Asia/Shanghai
      spring.config.additional-location: /home/campus/conf/application-prod.yml
    networks:
      # - campus_net
      - frontend
      - backend
    restart: unless-stopped

参考

imaotai
Cloudflare tunnel 隧道