docker newbie在这里。我正在尝试安装我的Java应用程序的Docker映像,该应用程序在GCE上使用jib制造,然后将其连接到Cloudsql。但是,由于GCE使Docker映像使用容器优化的启动磁盘,因此当我进入实例中以尝试将其连接到mySQL时,由于"找不到apt-get",因此无法安装mysql。
我读到我可以"构建自定义图像并配置吉布将其用作基本图像",以便可以访问APT-GET,但是我似乎找不到有关如何执行此操作的任何资源。
我尝试使用APK而不是APT-GET进行Alpine JDK路线 ,但是有人告诉我不要使用Alpine 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上,然后将新图像安装到其中,我可以运行" sudo apt-get install install mysql-client"。现在我得到了" apt-get:找不到"。
要在Docker Image中添加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"]