()
| 4 | import 'zx/globals'; |
| 5 | |
| 6 | export async function createDockerDB(): Promise<{ connectionString: string; container: Docker.Container }> { |
| 7 | const docker = new Docker(); |
| 8 | const port = await getPort({ port: 5656 }); |
| 9 | const image = 'geldata/gel:6'; |
| 10 | |
| 11 | const pullStream = await docker.pull(image); |
| 12 | await new Promise((resolve, reject) => |
| 13 | docker.modem.followProgress(pullStream, (err) => (err ? reject(err) : resolve(err))) |
| 14 | ); |
| 15 | |
| 16 | const gelContainer = await docker.createContainer({ |
| 17 | Image: image, |
| 18 | Env: [ |
| 19 | 'GEL_CLIENT_SECURITY=insecure_dev_mode', |
| 20 | 'GEL_SERVER_SECURITY=insecure_dev_mode', |
| 21 | 'GEL_CLIENT_TLS_SECURITY=no_host_verification', |
| 22 | 'GEL_SERVER_PASSWORD=password', |
| 23 | ], |
| 24 | name: `drizzle-integration-tests-${uuidV4()}`, |
| 25 | HostConfig: { |
| 26 | AutoRemove: true, |
| 27 | PortBindings: { |
| 28 | '5656/tcp': [{ HostPort: `${port}` }], |
| 29 | }, |
| 30 | }, |
| 31 | }); |
| 32 | |
| 33 | await gelContainer.start(); |
| 34 | |
| 35 | return { connectionString: `gel://admin:password@localhost:${port}/main`, container: gelContainer }; |
| 36 | } |
no test coverage detected