带有MySQL驱动程序的芭蕾舞女演员docker映像-如何

时间:2019-10-04 00:54:00

标签: ballerina ballerina-composer

使用芭蕾舞女演员v.1.0.1。在Mac上。 在主机上,我将MySQL驱动程序放入/Library/Ballerina/ballerina-1.0.1/distributions/jballerina-1.0.1/bre/lib,运行ballerine代码,可以连接到数据库了。

当我使用 build 命令创建docker映像并旋转docker进入compen 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)

问题:如何在Docker映像中正确安装MySQL驱动程序?我在文档中找不到任何参考。

谢谢

2 个答案:

答案 0 :(得分:3)

另一个选择是将MySQL驱动程序jar与Ballerina程序的可执行jar文件打包在一起。这样,您无需将文件复制到docker容器,因为ballerina build命令会生成一个包含所有依赖项的自包含可执行jar。

为此,您需要创建一个Ballerina项目和一个模块。 This guide包含有关Ballerina项目的更多信息。

然后,将以下部分复制并粘贴到项目目录中的Ballerina.toml中。

[platform]
target = "java8"

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

答案 1 :(得分:0)

您可以使用@docker:CopyFiles批注将文件复制到docker映像中。示例:

@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映像中的芭蕾舞女演员分布中,您可以复制到此目标:

@docker:CopyFiles {
    files: [
        { sourceFile: "./libs/mysql-driver.jar", target: "/ballerina/runtime/bre/lib/" }
    ]
}