【问题标题】:How do I build a custom Docker image that installs MySQL and configure Jib to use it as the base image for my Java Application?如何构建安装 MySQL 的自定义 Docker 映像并配置 Jib 以将其用作我的 Java 应用程序的基本映像?
【发布时间】:2019-12-05 01:37:17
【问题描述】:

Docker 新手在这里。我正在尝试在 GCE 上安装使用 Jib 制作的 Java 应用程序的 docker 映像,并将其连接到 CloudSQL。但是,由于 GCE 使 docker 映像使用 Container-Optimized 启动盘,当我 SSH 进入实例以尝试将其连接到 MySQL 时,由于“apt-get not found”,我无法安装 mysql。

我读到我可以“构建自定义映像并配置 Jib 以将其用作基础映像”以便访问 apt-get,但我似乎找不到任何有关如何执行此操作的资源。

我尝试使用 alpine jdk 路线 + 使用 apk 而不是 apt-get,但有人告诉我不要使用 alpine jdk,因为我以后会遇到问题。

我已经在我的 build.gradle 中设置了这个:

jib {
    from {
        image = 'order-routing-helper-image'
    }
    to {
        image = 'gcr.io/myimage'
    }
}

编辑:码头文件:

FROM openjdk:11
VOLUME /tmp
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.mygroup.myapp.OrderRoutingApplication"]

但我在任何地方都没有 order-routing-helper-image,我只知道我需要那条线。

如果我运行 gradle jib,然后在 GCE 和 SSH 上挂载新镜像,我可以运行“sudo apt-get install mysql-client”。现在我得到“apt-get: not found”。

【问题讨论】:

  • 你能分享一下你在 jdk 上工作的 dockerfile 吗?
  • @Adiii 添加了我的 dockerfile

标签: mysql docker google-cloud-sql jib


【解决方案1】:

要在 Docker 镜像中添加 MySQL,首先运行更新,然后添加 MySQL。

FROM openjdk:11
VOLUME /tmp
RUN apt update && apt install mysql-server -y
ARG DEPENDENCY=target/dependency
COPY ${DEPENDENCY}/BOOT-INF/lib /app/lib
COPY ${DEPENDENCY}/META-INF /app/META-INF
COPY ${DEPENDENCY}/BOOT-INF/classes /app
ENTRYPOINT ["java","-cp","app:app/lib/*","com.mygroup.myapp.OrderRoutingApplication"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-02
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2019-12-15
    相关资源
    最近更新 更多