MCPcopy
hub / github.com/drizzle-team/drizzle-orm / createDockerDB

Function createDockerDB

integration-tests/tests/mysql/mysql-common.ts:272–304  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

270
271let mysqlContainer: Docker.Container;
272export async function createDockerDB(): Promise<{
273 connectionString: string;
274 container: Docker.Container;
275}> {
276 const docker = new Docker();
277 const port = await getPort({ port: 3306 });
278 const image = 'mysql:8';
279
280 const pullStream = await docker.pull(image);
281 await new Promise((resolve, reject) =>
282 docker.modem.followProgress(pullStream, (err) => err ? reject(err) : resolve(err))
283 );
284
285 mysqlContainer = await docker.createContainer({
286 Image: image,
287 Env: ['MYSQL_ROOT_PASSWORD=mysql', 'MYSQL_DATABASE=drizzle'],
288 name: `drizzle-integration-tests-${uuid()}`,
289 HostConfig: {
290 AutoRemove: true,
291 PortBindings: {
292 '3306/tcp': [{ HostPort: `${port}` }],
293 },
294 },
295 });
296
297 await mysqlContainer.start();
298 await new Promise((resolve) => setTimeout(resolve, 4000));
299
300 return {
301 connectionString: `mysql://root:mysql@127.0.0.1:${port}/drizzle`,
302 container: mysqlContainer,
303 };
304}
305
306afterAll(async () => {
307 await mysqlContainer?.stop().catch(console.error);

Callers 4

mysql.test.tsFile · 0.90

Calls 2

resolveFunction · 0.85
uuidFunction · 0.50

Tested by

no test coverage detected