Образ докера балерины с MySQL Driver - как - PullRequest
1 голос
/ 04 октября 2019

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

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

ApplicationError message = ошибка в конфигурации коннектора 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)

1008 *

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

Спасибо,

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

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

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

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

[platform]
target = "java8"

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

0 голосов
/ 04 октября 2019

Вы можете копировать файлы в образы докеров, используя аннотацию @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/" }
    ]
}
...