【文档】部署开源项目 mayfly-go

操作系统:Rocky Linux 8

参考文档:官方 [mayfly-go] 项目文档 | 本文仅对此文档内容缺失部分进行补充

前置准备


复制代码
[root@mayfly-go opt]# yum install -y wget unzip

# 下载源文件
# 下载源见官方发布:https://gitee.com/dromara/mayfly-go/releases
[root@mayfly-go opt]# wget https://gitee.com/dromara/mayfly-go/releases/download/v1.10.3/mayfly-go-linux-amd64.zip
[root@mayfly-go opt]# unzip mayfly-go-linux-amd64.zip

以 Docker-Compose 方式部署


docker-compose.yaml 在官方仓库中直接获取。附注:该文件不存在于发布文件中,且官方文档中对该内容的引用链接丢失。
docker-compose.yaml 主要做以下内容:

  1. 创建 MySQL 数据库容器
    • 绑定数据库
    • 配置 参数(容器别名、用户名、密码、时区)
  2. 创建 mayfly-go-server 的自定义镜像

实际业务中,可忽略 MySQL 服务器的创建(注释#)。通过 mayfly-go-web 内直接添加对应服务器信息。

复制代码
version: "2.1"         # 在 RHEL8 中因为依赖兼容性,原设定 3.9 不被适用。

services:
    #mysql:
    #image: "mysql:8"
    #container_name: mayfly-go-mysql
    #environment:
    #  MYSQL_ROOT_PASSWORD: 111049
    #  MYSQL_DATABASE: mayfly-go
    #  TZ: Asia/Shanghai
    #volumes:
    #  - ./server/docs/docker-compose/mysql/data/mydir:/mydir
    #  - ./server/docs/docker-compose/mysql/data/datadir:/var/lib/mysql
    #restart: always
    
  server:
    image: ccr.ccs.tencentyun.com/mayfly/mayfly-go:latest
    build:
      context: .
      dockerfile: Dockerfile
    container_name: mayfly-go-server
    ports:
      - "18888:18888"
    environment:
      TZ: Asia/Shanghai
      #WAIT_HOSTS: 192.168.88.110:3306
    volumes:
      - ./server/config.yml:/mayfly/config.yml
    #depends_on:
    #  - mysql
    restart: always

如上所示,禁用了 MySQL 的环境配置。实际 MySQL 数据库 与 mayfly-go-server 是独立物理机。对应的

  • WAIT_HOSTS 被注释
  • depends_on 被注释

避免部署影响。

同时在部署时注意到官方仓库存在 Dockerfile 这一文件。 附注:该文件不存在于发布文件中,且官方文档中未在部署时对该文件提出解答!

复制代码
ARG BASEIMAGES=m.daocloud.io/docker.io/alpine:3.20.2

FROM ${BASEIMAGES} AS builder
ARG TARGETARCH

ARG MAYFLY_GO_VERSION
ARG MAYFLY_GO_DIR_NAME=mayfly-go-linux-${TARGETARCH}
ARG MAYFLY_GO_URL=https://gitee.com/dromara/mayfly-go/releases/download/${MAYFLY_GO_VERSION}/${MAYFLY_GO_DIR_NAME}.zip

#RUN wget -cO mayfly-go.zip ${MAYFLY_GO_URL} && \
#    unzip mayfly-go.zip && \
#    mv ${MAYFLY_GO_DIR_NAME}/* /opt
COPY mayfly-go-linux-amd64.zip mayfly-go.zip
RUN unzip mayfly-go.zip && \
    mv mayfly-go-linux-amd64/* /opt && \
    rm -rf mayfly-go-linux-amd64 mayfly-go.zip

FROM ${BASEIMAGES}

ARG TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

COPY --from=builder /opt/mayfly-go /usr/local/bin/mayfly-go

WORKDIR /mayfly-go

EXPOSE 18888

CMD ["mayfly-go"]

访问 IP地址:18888 (用户名 admin 密码 admin123.)

补充


实际操作过程可能遇到的问题如下: