重启间数据持久化
先决条件
本教程页面需要先完成以下前置教程:
让我们开始吧!
- 使用以下命令启动MySQL Docker容器:
docker run -p 3306:3306 --name NameOfTheContainer -e MYSQL_ROOT_PASSWORD=YourPassword -e MYSQL_DATABASE=DatabaseName -e MYSQL_USER=ChooseAName -e MYSQL_PASSWORD=YourOtherPassword -d mysql:8.4
- 更新您的
application.conf文件。
database {
profile = "slick.jdbc.MySQLProfile$"
db {
driver = "com.mysql.cj.jdbc.Driver"
url = "jdbc:mysql://localhost/DatabaseName?rewriteBatchedStatements=true&useSSL=false"
user = "ChooseAName"
password = "YourOtherPassword"
connectionTimeout = 5000
}
}
将上述行添加到您的application.conf文件中所有其他行下方。将"DatabaseName"、"ChooseAName"和"YourOtherPassword"替换为步骤2中选择的值,并保留双引号。
通过使用更新后的application.conf运行服务器来测试它:
java -Dconfig.file=/path/to/application.conf/ -jar cromwell-[version].jar ...
无根数据库选项:Podman Quadlet
Podman使用与Docker相同的底层技术,但其架构允许在非root权限下运行。在您的环境中设置Podman超出了本教程的范围,但一旦配置完成,您就可以接入这个Quadlet。
了解 Podman Desktop 中的 Quadlets。
在Podman Machine中创建此文件,路径为/var/home/core/.config/containers/systemd/cromwell_database_3306.container:
# cromwell_database_3306.container
[Container]
ContainerName=cromwell_database_3306
Environment=MYSQL_ROOT_PASSWORD=private MYSQL_USER=cromwell MYSQL_PASSWORD=test MYSQL_DATABASE=cromwell_test
Image=mirror.gcr.io/mysql:lts
PublishPort=3306:3306
# Use config from Cromwell repo
Volume=~/Projects/cromwell/src/ci/docker-compose/mysql-conf.d:/etc/mysql/conf.d
# Store data on the host for persistence and easy examination
Volume=~/Projects/local-cromwell-mysql:/var/lib/mysql
# Optional, periodically update image from the registry. Causes container restart.
# Requires one-time enablement on Podman Machine:
# $ systemctl enable podman-auto-update
# $ systemctl start podman-auto-update
AutoUpdate=registry
[Service]
Restart=always
后续步骤
你可能会对接下来要学习的以下教程感兴趣: