如何构建自定义的Docker映像来安装MySQL并配置Jib以将其用作Java应用程序的基础映像?

时间:2019-07-26 17:26:25

标签: mysql docker google-cloud-sql jib

Docker新手在这里。我正在尝试在GCE上挂载使用Jib制作的Java应用程序的docker映像,并将其连接到CloudSQL。但是,由于GCE使docker映像使用容器优化的启动磁盘,因此当我SSH进入实例以尝试将其连接到MySQL时,由于“找不到apt-get”而无法安装mysql。

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

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

我已经在build.gradle中进行了设置:

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

编辑:DOCKERFILE:

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"]

但是我在任何地方都没有订购路由的帮助图像,我只知道我需要那条线。

如果我运行gradle jib,然后将新映像安装在GCE和SSH上,则可以运行“ sudo apt-get install mysql-client”。现在,我得到“ apt-get:找不到”。

1 个答案:

答案 0 :(得分:0)

要在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"]