无法在Amazon EC2上通过Java运行mysql命令行。 只在本地工作的Docker应用程序

执行mysql命令以从SQL文件恢复数据库的Java代码 。 这在我的机器本地工作,但是当我推我的容器到Amazon EC2,我遇到了一个错误。

restoreCmd = new String[]{"mysql ","--user="+doc.getDatabaseUserName(), "--password="+doc.getDatabasePass(),"--host="+doc.getDatabaseHostUri(),"-e","source " + file.getAbsolutePath()}; try { Runtime.getRuntime().exec(restoreCmd); System.out.println("Inserted into RDS"); } catch (Exception ex) { ex.printStackTrace(); } 

在亚马逊出现的错误 。 我本地有这个错误,当我的mysql binpath错误。 我解决了这个问题,它在本地工作,但是当我作为一个docker容器build立这个应用程序时遇到同样的问题,如果程序通过docker安装后找不到mysql?

  13:40:27 java.io.IOException: Cannot run program "mysql ": error=2, No such file or directory java.io.IOException: Cannot run program "mysql ": error=2, No such file or directory 

Docker文件 ,安装mysql服务器和客户端。

 FROM openjdk:8-jdk ARG MAVEN_VERSION=3.5.0 ARG USER_HOME_DIR="/root" ARG SHA=beb91419245395bd69a4a6edad5ca3ec1a8b64e41457672dc687c173a495f034 ARG BASE_URL=https://apache.osuosl.org/maven/maven-3/${MAVEN_VERSION}/binaries RUN mkdir -p /usr/share/maven /usr/share/maven/ref \ && curl -fsSL -o /tmp/apache-maven.tar.gz ${BASE_URL}/apache-maven-${MAVEN_VERSION}-bin.tar.gz \ && echo "${SHA} /tmp/apache-maven.tar.gz" | sha256sum -c - \ && tar -xzf /tmp/apache-maven.tar.gz -C /usr/share/maven --strip-components=1 \ && rm -f /tmp/apache-maven.tar.gz \ && ln -s /usr/share/maven/bin/mvn /usr/bin/mvn RUN apt-get -y update RUN apt-get -y install mysql-server RUN apt-get -y install mysql-client RUN service mysql start ENV MAVEN_HOME /usr/share/maven ENV MAVEN_CONFIG "$USER_HOME_DIR/.m2" COPY mvn-entrypoint.sh /usr/local/bin/mvn-entrypoint.sh COPY settings-docker.xml /usr/share/maven/ref/ COPY . /usr/local/BigData VOLUME "$USER_HOME_DIR/.m2" RUN chmod +x /usr/local/bin/mvn-entrypoint.sh ENTRYPOINT ["/usr/local/bin/mvn-entrypoint.sh"]