如何在dockerfile中安装mysql服务器?

piah890a  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(869)

我有一个情结 Dockerfile 不仅仅是 mysql-server 所以我不能从现有的 mysql 容器。
当我去掉所有多余的东西时,我得到了这个 Dockerfile ```
FROM ubuntu:latest

ENV MYSQL_ROOT_PASSWORD=root
ENV MYSQL_ROOT_USER=root
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get install -y apt-utils
RUN apt-get install -y mysql-server

RUN usermod -d /var/lib/mysql/ mysql
RUN service mysql start

不幸的是, `mysql` 不想启动:

---> 57a66bd64c2c
Step 8/9 : RUN usermod -d /var/lib/mysql/ mysql
---> Running in 596df248c2e4
---> ee78442bcc56
Step 9/9 : RUN service mysql start
---> Running in 0d9e5803cf33

  • Starting MySQL database server mysqld
    ...fail!
    The command '/bin/sh -c service mysql start' returned a non-zero code: 1
我犯了什么错?
2hh7jdfx

2hh7jdfx1#

看起来你已经删除了docker文件中最重要的部分。这是官方的mysql repo docker文件。

FROM oraclelinux:7-slim
ENV PACKAGE_URL https://repo.mysql.com/yum/mysql-8.0-community/docker/x86_64/mysql-community-server-minimal-8.0.2-0.1.dmr.el7.x86_64.rpm

# Install server

RUN rpmkeys --import http://repo.mysql.com/RPM-GPG-KEY-mysql \
  && yum install -y $PACKAGE_URL \
  && yum install -y libpwquality \
  && rm -rf /var/cache/yum/*
RUN mkdir /docker-entrypoint-initdb.d

VOLUME /var/lib/mysql

COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

EXPOSE 3306 33060
CMD ["mysqld"]

你需要包括一个正确的源代码和正确的版本来提取图像。并公开正确的端口,分离出卷供mysql运行。你的容器可能会因为这些原因而失效。我建议从dockerfile中删除mysql部分,然后运行容器的其余部分。使用官方的mysql映像并将其安装在单独的容器中。然后你可以把数据库和其他应用程序连接起来。

相关问题