我有一个复杂的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
我怎么了?
答案 0 :(得分:0)
好像您已删除docker文件中最重要的部分。这是MySQL官方仓库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映像并将其安装在单独的容器中。然后您可以将数据库与其他应用程序连接。