Как мне создать собственный образ Docker, который устанавливает MySQL и настроить Jib для использования его в качестве базового образа для моего Java-приложения?
Докер новичок здесь. Я пытаюсь смонтировать образ докера моего Java-приложения, созданного с помощью Jib на GCE, и подключить его к CloudSQL. Однако, поскольку GCE заставляет образ докера использовать загрузочный диск, оптимизированный для контейнера, когда я подключаю SSH к экземпляру, чтобы попытаться подключить его к MySQL, я не могу установить mysql из-за 'apt-get not found'.
Я прочитал, что могу "создать собственный образ и настроить Jib для использования его в качестве базового образа", чтобы иметь доступ к apt-get, но я не могу найти какие-либо ресурсы о том, как это сделать.
Я попытался пойти по альпийскому маршруту jdk +, используя apk вместо apt-get, но кто-то сказал мне не использовать 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 и SSH, я могу запустить "sudo apt-get install mysql-client". Прямо сейчас я получаю "apt-get: not found".
1 ответ
Чтобы добавить MySQL в образ Docker, сначала нужно запустить обновление, а затем добавить 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"]