1

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”。

4

1 回答 1

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"]
于 2019-07-26T19:54:08.540 回答