docker 编译安装mysql脚本

这篇具有很好参考价值的文章主要介绍了docker 编译安装mysql脚本。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Docker中,你通常不会直接编译安装MySQL,因为Docker提供了预先构建好的MySQL镜像。这些镜像已经包含了编译好的MySQL二进制文件和所需的库文件。不过,如果你有特殊需求,例如想要自己从源代码编译MySQL并打包成Docker镜像,你可以编写一个Dockerfile来实现。

下面是一个简单的Dockerfile示例,用于从MySQL的源代码编译并安装MySQL,然后创建一个Docker镜像:

 
# 使用一个包含编译工具的基础镜像
FROM ubuntu:latest AS builder

# 安装编译MySQL所需的依赖包
RUN apt-get update && \
apt-get install -y \
cmake \
gcc \
g++ \
make \
libncurses5-dev \
libssl-dev \
libreadline-dev \
zlib1g-dev \
&& rm -rf /var/lib/apt/lists/*

# 设置工作目录
WORKDIR /usr/src/mysql

# 从MySQL官方网站下载源代码
ARG MYSQL_VERSION=8.0.26
RUN curl -sSL https://dev.mysql.com/get/Downloads/MySQL-${MYSQL_VERSION}/mysql-${MYSQL_VERSION}.tar.gz | tar -xzvf -

# 编译和安装MySQL
RUN mkdir build && \
cd build && \
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_LIBWRAP=0 -DMYSQL_DATADIR=/var/lib/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock && \
make -j$(nproc) && \
make install

# 复制配置文件模板到镜像中
COPY my.cnf /etc/mysql/my.cnf

# 创建一个MySQL用户
RUN useradd -r -s /bin/false -M mysql

# 设置MySQL数据目录权限
RUN chown -R mysql:mysql /var/lib/mysql /usr/local/mysql

# 设置环境变量
ENV PATH=/usr/local/mysql/bin:$PATH
ENV MYSQL_HOME=/usr/local/mysql
ENV MYSQL_DATA_DIR=/var/lib/mysql

# 复制启动脚本
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

# 暴露MySQL默认端口
EXPOSE 3306

# 定义容器启动时执行的命令
ENTRYPOINT ["/entrypoint.sh"]

这个Dockerfile执行了以下步骤:

  1. 使用ubuntu:latest作为基础镜像,并切换到builder阶段。
  2. 安装编译MySQL所需的依赖包。
  3. 下载MySQL的源代码。
  4. 使用cmakemake工具编译MySQL。
  5. 安装MySQL到/usr/local/mysql目录。
  6. 复制一个自定义的my.cnf配置文件到镜像中。
  7. 创建一个名为mysql的系统用户。
  8. 设置MySQL数据目录的权限。
  9. 设置环境变量。
  10. 复制一个启动脚本entrypoint.sh到镜像中,并使其可执行。
  11. 暴露MySQL的默认端口3306。
  12. 设置容器启动时的默认命令为entrypoint.sh

你需要创建一个entrypoint.sh脚本来初始化数据库、启动MySQL服务等。这个脚本可能会像这样:

 
#!/bin/bash

# 初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql

# 启动MySQL服务
/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 等待MySQL服务启动
while ! nc -z localhost 3306; do
sleep 1
done

# 现在MySQL服务已经启动,可以执行其他命令,比如等待用户的命令
exec "$@"

要构建这个Docker镜像,你可以在Dockerfile所在的目录中运行以下命令:

 
docker build -t my-custom-mysql .

然后,你可以运行一个新的容器实例:文章来源地址https://www.toymoban.com/news/detail-830097.html

 
docker run -p 3306:3306 --name my-mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d my-custom-mysql

到了这里,关于docker 编译安装mysql脚本的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 基于docker部署的Mysql备份查询脚本

    前言 此环境是基于docker部署的mysql,docker部署mysql可以参考如下链接: docker 部署服务案例-CSDN博客 颜色块文件 备份代码 此代码如果是本地环境测试的话,逻辑是判断当前本地有没有存储备份数据的目录,没有则创建。 再利用subprocess执行mysqldump命令,按照日期生成.sql文件

    2024年04月26日
    浏览(26)
  • docker 脚本安装

    docker-install

    2024年01月23日
    浏览(22)
  • 导出docker MySQL中的数据库写一个shell 脚本

    安装命令 mysqldump 编辑脚本内容 export_mysql.sh 执行以下命令给脚本添加执行权限:

    2024年02月21日
    浏览(46)
  • CentOS一键安装docker脚本

    在CentOS上安装Docker是许多项目中常见的任务之一。为了简化这个过程,你可以使用下面的一键脚本。 运行:

    2024年02月04日
    浏览(46)
  • Docker 相关操作,及其一键安装Docker脚本

    创建一个CentOS 7.5的虚拟机或使用其他方式准备一个CentOS 7.5的环境。 在CentOS 7.5上执行以下命令,以安装Docker的依赖项: 添加Docker的官方仓库: 安装Docker CE(社区版): 启动Docker服务: 设置Docker服务开机自启动: 验证Docker安装是否成功,运行以下命令检查Docker版本: 如果安

    2024年02月10日
    浏览(33)
  • MySQL自动安装脚本分享

    这里分享一个我写的MySQL自动安装脚本mysql_auto_install.sh,它的功能非常简单,就是自动化安装MySQL单实例,让DBA的工作更简单、轻松一些,不用去手工安装MySQL实例。从简单重复的工作中释放出来。 下面是关于mysql_auto_install.sh脚本的一些说明: 1:这个脚本运行在mysql用户下(

    2024年02月11日
    浏览(31)
  • docker 安装青龙面板,运行京东脚本

    青龙面板是一个基于 Docker 的开源项目,用于管理和运行各种脚本。在这个示例中,我将向您展示如何使用 Docker 安装青龙面板并运行京东脚本。 首先,确保您已经安装了 Docker。安装完成后,按照以下步骤操作: 打开终端,运行以下命令以拉取青龙面板的 Docker 镜像: 创建一

    2024年02月17日
    浏览(54)
  • docker-compose安装脚本

    portainer mysql rabbitMQ

    2024年02月12日
    浏览(49)
  • 【Docker】Docker的应用场景,Docker 的优点,Ubuntu Docker 安装,使用 Shell 脚本进行安装

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 Web 应用的自动化打包和发布。 自动化测试和持续集成、发布。 在服务型环境中部署和调整数据库或其他的后台

    2024年02月14日
    浏览(42)
  • python ADB 手机屏幕 控制脚本 刷粉 刷赞 脚本

    本系列专栏见:高质量文章导航_GZVIMMY的博客 Python大家都很熟悉,人生苦短,我用Python。 ADB(Android Debug Bridge)则是一种通过电脑调试控制安卓设备的技术,我可以在电脑上输入指令,达到和手工操作一样的效果(比如说我可以用电脑控制安卓手机点开某个应用,点击某个按

    2024年02月10日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包