Образ докера Ballerina с драйвером MySQL - как сделать

С использованием балерины v.1.0.1. на Mac. На хосте я поместил драйвер MySQL в /Library/Ballerina/ballerina-1.0.1/distributions/jballerina-1.0.1/bre/lib, запустил код балерины, и я смог подключиться к БД.

Когда я создал образ докера с помощью команды сборки и запустил докер в compose env, он потерпел неудачу с

Сообщение ApplicationError = ошибка в конфигурации соединителя sql: не удалось получить экземпляр драйвера для jdbcUrl=jdbc:mysql://mysql:3306/api_svc? ServerTimezone=UTC: нет подходящего драйвера в ballerinax.java_jdbc:createClient(jdbc_client.bal:87) ballerinax.java_jdbc.Client:__init(client_endpoint.bal:27)

Вопрос: Как правильно смонтировать драйвер MySQL в образе докера? Я не могу найти никаких ссылок в документации.

Благодарность,

2 ответа

Другой вариант - упаковать jar-файл драйвера MySQL с исполняемым jar-файлом вашей программы Ballerina. Таким образом, вам не нужно копировать файлы в контейнер докера, потому чтоballerina build команда создает автономный исполняемый файл jar со всеми зависимостями.

Для этого вам необходимо создать проект Ballerina и модуль. Это руководство содержит больше информации о проектах Балерины.

Затем скопируйте и вставьте следующий раздел в Ballerina.toml в каталоге вашего проекта.

[platform]
target = "java8"

    [[platform.libraries]]
    path = "<path-to-the-mysql-driver-jar-file>"
    modules = ["<name-of-the-ballerina-module>"]

Вы можете копировать файлы в образы докеров с помощью аннотации @docker:CopyFiles. Пример:

@docker:Config {}
@docker:CopyFiles {
    files: [
        { sourceFile: "./conf/data.txt", target: "/home/ballerina/data/data.txt" }
    ]
}

@docker:Expose {}
listener http:Listener helloWorldEP = new(9090);

Проверьте этот образец: https://github.com/ballerinax/docker/tree/master/samples/sample5

Чтобы добавить его в раздачу балерины в образе докера, вы можете скопировать в эту цель:

@docker:CopyFiles {
    files: [
        { sourceFile: "./libs/mysql-driver.jar", target: "/ballerina/runtime/bre/lib/" }
    ]
}
Другие вопросы по тегам