【文档】部署开源项目 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 主要做以下内容:
- 创建 MySQL 数据库容器
- 绑定数据库
- 配置 参数(容器别名、用户名、密码、时区)
- 创建 mayfly-go-server 的自定义镜像
- 获取 ccr.ccs.tencentyun.com/mayfly/mayfly-go:latest 源镜像,并创建自定义镜像。
- 配置 参数(容器别名、端口映射、映射卷、时区、服务项等)
实际业务中,可忽略 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: alwaysserver:image: ccr.ccs.tencentyun.com/mayfly/mayfly-go:latestbuild:context: .dockerfile: Dockerfilecontainer_name: mayfly-go-serverports:- "18888:18888"environment:TZ: Asia/Shanghai#WAIT_HOSTS: 192.168.88.110:3306volumes:- ./server/config.yml:/mayfly/config.yml#depends_on:# - mysqlrestart: always
如上所示,禁用了 MySQL 的环境配置。实际 MySQL 数据库 与 mayfly-go-server 是独立物理机。对应的
WAIT_HOSTS
被注释depends_on
被注释
避免部署影响。
同时在部署时注意到官方仓库存在 Dockerfile 这一文件。 附注:该文件不存在于发布文件中,且官方文档中未在部署时对该文件提出解答!
ARG BASEIMAGES=m.daocloud.io/docker.io/alpine:3.20.2FROM ${BASEIMAGES} AS builder
ARG TARGETARCHARG 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.zipFROM ${BASEIMAGES}ARG TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneCOPY --from=builder /opt/mayfly-go /usr/local/bin/mayfly-goWORKDIR /mayfly-goEXPOSE 18888CMD ["mayfly-go"]
访问 IP地址:18888
(用户名 admin 密码 admin123.)
补充
实际操作过程可能遇到的问题如下:
- 【解决】Mayfly-go 容器启动失败 - MySQL 数据库无法访问