使用芭蕾舞女演员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驱动程序?我在文档中找不到任何参考。
谢谢
答案 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/" }
]
}