重启间数据持久化

先决条件

本教程页面需要先完成以下前置教程:

让我们开始吧!

  • 使用以下命令启动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

后续步骤

你可能会对接下来要学习的以下教程感兴趣: