MySQLContainerConfig constructor
MySQLContainerConfig({})
Implementation
MySQLContainerConfig({
this.dbUser = 'myuser',
this.dbPassword = 'mypass',
this.dbName = 'mydb',
int? hostPort,
bool forceNativePasswordAuthentication = false,
List<String>? daemonArguments,
}) : super(
'mysql',
version: 'latest',
hostPorts: hostPort != null ? [hostPort] : null,
containerPorts: [3306],
imageArgs: _buildImageArgs(
forceNativePasswordAuthentication, daemonArguments),
environment: {
'MYSQL_USER': dbUser,
'MYSQL_PASSWORD': dbPassword,
'MYSQL_ROOT_PASSWORD': dbPassword,
'MYSQL_DATABASE': dbName,
},
outputAsLines: true,
stdoutReadyFunction: (output, line) => false,
stderrReadyFunction: (output, data) {
var lines = data is List ? data : [data];
return lines.any((l) =>
l.contains('mysqld: ready for connections') &&
!l.contains('port: 0'));
},
) {
if (dbUser.trim().isEmpty) {
throw ArgumentError('Invalid dbUser: $dbUser');
}
if (dbName.trim().isEmpty) {
throw ArgumentError('Invalid dbName: $dbName');
}
if (dbPassword.isEmpty) {
throw ArgumentError('Invalid dbPassword: $dbPassword');
}
}