Как мне создать собственный образ 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"]
Другие вопросы по тегам