dockerfile 源码安装mysql
时间: 2023-11-03 14:03:01 浏览: 95
可以按照以下步骤来编写 Dockerfile 安装 MySQL:
1. 选择一个适合的基础镜像,比如 Ubuntu。
2. 更新系统并安装 MySQL 的依赖库:
```
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
libmysqlclient-dev \
mysql-client \
libncurses5-dev \
libncursesw5-dev
```
3. 下载 MySQL 的源代码:
```
RUN wget -O /tmp/mysql.tar.gz https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.33.tar.gz
```
4. 解压源代码并进入目录:
```
RUN tar -xzf /tmp/mysql.tar.gz -C /opt && \
mv /opt/mysql-* /opt/mysql && \
cd /opt/mysql
```
5. 编译和安装 MySQL:
```
RUN cmake . && \
make && \
make install
```
6. 配置 MySQL 服务器:
```
RUN groupadd mysql && \
useradd -r -g mysql mysql && \
cd /opt/mysql && \
mkdir mysql-files && \
chmod 750 mysql-files && \
chown -R mysql:mysql . && \
bin/mysqld --initialize-insecure --user=mysql && \
chown -R root . && \
chown -R mysql:mysql data mysql-files && \
cp support-files/mysql.server /etc/init.d/mysql.server
```
7. 暴露 MySQL 端口:
```
EXPOSE 3306
```
8. 启动 MySQL:
```
CMD ["/etc/init.d/mysql.server", "start"]
```
最终的 Dockerfile 可以类似这样:
```
FROM ubuntu:16.04
RUN apt-get update && apt-get install -y \
build-essential \
cmake \
libmysqlclient-dev \
mysql-client \
libncurses5-dev \
libncursesw5-dev
RUN wget -O /tmp/mysql.tar.gz https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.33.tar.gz
RUN tar -xzf /tmp/mysql.tar.gz -C /opt && \
mv /opt/mysql-* /opt/mysql && \
cd /opt/mysql && \
cmake . && \
make && \
make install && \
groupadd mysql && \
useradd -r -g mysql mysql && \
cd /opt/mysql && \
mkdir mysql-files && \
chmod 750 mysql-files && \
chown -R mysql:mysql . && \
bin/mysqld --initialize-insecure --user=mysql && \
chown -R root . && \
chown -R mysql:mysql data mysql-files && \
cp support-files/mysql.server /etc/init.d/mysql.server
EXPOSE 3306
CMD ["/etc/init.d/mysql.server", "start"]
```
阅读全文
相关推荐















