我被迫重新安装macOS塞拉,因为我在高塞拉的测试版程序中,我遇到了严重的崩溃,所以我降低了系统的级别。
在系统突然崩溃之前,这个Dockerfile在High Sierra工作。
FROM ubuntu:16.04
MAINTAINER XXX version 0.0.1
# Prepare Debian environment
ENV DEBIAN_FRONTEND noninteractive
# we don't need an apt cache in a container
RUN echo "Acquire::http {No-Cache=True;};" > /etc/apt/apt.conf.d/no-cache
# ----------------------------
# Configure supervisor
# ----------------------------
RUN apt-get update > /dev/null 2>&1 && apt-get install -y supervisor > /dev/null 2>&1
RUN mkdir -p /var/log/supervisor
COPY files/supervisord.conf /etc/supervisor/conf.d/supervisord.conf
## Mysql
RUN apt-get install -y mysql-client > /dev/null 2>&1
#RUN debconf-set-selections <<< 'mysql-server mysql-server/root_password password 1234'
#RUN debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password 1234'
RUN echo 'mysql-server mysql-server/root_password password 1234' | debconf-set-selections
RUN echo 'mysql-server mysql-server/root_password_again password 1234' | debconf-set-selections
RUN apt-get -y install mysql-server > /dev/null 2>&1
RUN sed -i -e 's/127.0.0.1/0.0.0.0/g' /etc/mysql/mysql.conf.d/mysqld.cnf
RUN echo "sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE" >> /etc/mysql/mysql.conf.d/mysqld.cnf
RUN usermod -d /var/lib/mysql/ mysql
mys
ADD files/xxx.dump /tmp/xxx.dump
ADD files/mysql_xxx.sql /tmp/mysql_xxx.sql
RUN service mysql start && \
mysql -uroot -p1234 < /tmp/mysql_xxx.sql
RUN rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN apt-get clean
EXPOSE 3306
CMD ["/usr/bin/supervisord"]现在,重新安装所有我不能工作的东西,它总是输出相同的错误:
Starting MySQL database server mysqld ...fail!
为了添加一些信息,在Dockerfile停止的步骤中,我启动了一个转储数据库的服务。
我的系统版本是Docker sera10.12.6 (16G29),我的macOS版本是17.06.0-ce-mac19 (18663)。是否有解决此问题的方法?
发布于 2017-08-22 03:56:02
您应该使用官方的MySQL Dockerfile文件作为您的起点。您可以只使用MySQL镜像本身,docker文件的FROM mysql:5.7,或者您可以从their Github复制docker文件和docker入口点sh来“控制”MySQL镜像,而不依赖于MySQL版本/更改。
我认为对所有的Docker容器使用相同的操作系统基础是一个好主意,你目前正在使用Ubuntu发行版,如果你不介意或者刚刚开始,你可能想让Debian作为你的操作系统基础。我这么说是因为到目前为止我看过的Docker镜像,Cloudbee的Jenkins,.NET核心,ASP.NET Core和MySQL都有一个Debian基础,所以我一直认为Debian是Docker镜像最流行的操作系统基础,尽管我只有很明显的轶事证据。
我的公司更喜欢CentOS发行版,所以我使用了官方的MySQL Dockerfile文件和converted to work with CentOS:7,这很痛苦。
https://stackoverflow.com/questions/45803843
复制相似问题