在 Docker 容器中安装 MySQL connector/J

Install MySQL connector/J in Docker container

我正在将应用程序部署到 Elastic Beanstalk 上预配置的 GlassFish Docker 容器。我需要安装 MySQL connector/J 库以便 GlassFish 可以访问它。根据 AWS documentation、"With preconfigured Docker platforms you cannot use a configuration file to customize and configure the software that your application depends on." 但它确实声明:"you can add a Dockerfile to your application's root folder."

他们提供了一个关于为 Python 安装 PostgreSQL 库的示例(没有解释!),但我使用的是 Java 和 MySQL。由于我完全不熟悉 Docker(而且真的只需要配置这一件事),所以我不知道该怎么做。使用 Amazon's example Dockerfile 我能够想出这个:

FROM amazon/aws-eb-glassfish:4.1-jdk8-onbuild-3.5.1

# Exposes port 8080
EXPOSE 8080 3306

# Install MySQL dependencies
RUN curl -L -o /tmp/mysql-connector-java-5.1.34.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar && \
  apt-get update && \
  apt-get install -y /tmp/mysql-connector-java-5.1.34.jar libpq-dev && \
  rm -rf /var/lib/apt/lists/*

但是,在部署应用程序时,出现以下错误:

t update && apt-get install -y /tmp/mysql-connector-java-5.1.34.jar libpq-dev && rm -rf /var/lib/apt/lists/*] returned a non-zero code: 100"

显然,我的库没有安装。 如何使用 Docker 文件安装 MySQL Connector/J 库?

apt-get install -y /tmp/mysql-connector-java-5.1.34.jar

这不是 apt-get 的工作方式。它安装 debian 软件包。

有一个名为 libmysql-java 的软件包可能是您想要的。

你也可以试试

RUN curl -L -o /mysql-connector-java-5.1.34.jar https://repo1.maven.org/maven2/mysql/mysql-connector-java/5.1.34/mysql-connector-java-5.1.34.jar
ENV CLASSPATH=/mysql-connector-java-5.1.34.jar:${CLASSPATH}