44 lines
1.2 KiB
Docker
44 lines
1.2 KiB
Docker
# MySQL Docker镜像 - 支持多架构构建
|
|
# 基于官方MySQL 8.0镜像,集成数据初始化功能
|
|
|
|
ARG MYSQL_VERSION=8.0
|
|
FROM mysql:${MYSQL_VERSION}
|
|
|
|
# 设置维护者信息
|
|
LABEL maintainer="LJWX Team <[email protected]>"
|
|
LABEL description="LJWX MySQL Database with initialization data"
|
|
LABEL version="2.0.1"
|
|
|
|
# 设置默认环境变量
|
|
ENV MYSQL_ROOT_PASSWORD=123456
|
|
ENV MYSQL_DATABASE=test
|
|
ENV MYSQL_USER=ljwx
|
|
ENV MYSQL_PASSWORD=123456
|
|
ENV TZ=Asia/Shanghai
|
|
|
|
# 复制初始化脚本和数据
|
|
COPY data.sql /docker-entrypoint-initdb.d/01-init-data.sql
|
|
|
|
# 复制自定义MySQL配置
|
|
COPY docker/mysql/my.cnf /etc/mysql/conf.d/ljwx.cnf
|
|
|
|
# 创建自定义入口脚本
|
|
COPY docker/mysql/custom-entrypoint.sh /usr/local/bin/custom-entrypoint.sh
|
|
RUN chmod +x /usr/local/bin/custom-entrypoint.sh
|
|
|
|
# 设置时区
|
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|
|
|
# 强制初始化环境变量(默认关闭,如需要可在启动时设置)
|
|
ENV MYSQL_FORCE_INIT=0
|
|
|
|
# 健康检查
|
|
HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \
|
|
CMD mysqladmin ping -h localhost -u root -p$MYSQL_ROOT_PASSWORD || exit 1
|
|
|
|
# 暴露端口
|
|
EXPOSE 3306
|
|
|
|
# 使用自定义入口点
|
|
ENTRYPOINT ["custom-entrypoint.sh"]
|
|
CMD ["mysqld"] |