1. Always combine RUN apt-get update with apt-get install in the same RUN statement.
Best practices for writing Dockerfiles
https://docs.docker.com/develop/develop-images/dockerfile_best-practices/For example:
RUN apt-get update && apt-get install -y \
package-bar \
package-baz \
package-foo \
&& rm -rf /var/lib/apt/lists/*
Using apt-get update alone in a RUN statement causes caching issues and subsequent apt-get install instructions fail.
2. 数据库应该和 docker layout 分开,新建用户之类的操作,应该在
enterpoint.sh 里面进行
3. 如果你真的特别想在 mysql 里面执行应该这样
RUN echo "CMD1 \n CMD2\n CMD3\n" | mysql
把 CMD1~3 发送到 mysql 的输入里执行
RUN 命令是执行 elf 而不是在终端里输入然后回车。你可以认为每句话都在一个新的终端里执行