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:找不到”。
答案 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"]