flecks/packages/db/src/containers.js

60 lines
1.1 KiB
JavaScript
Raw Normal View History

2022-02-28 05:16:24 -06:00
export default (flecks) => {
2022-02-25 04:58:08 -06:00
const {
dialect,
username,
password,
port,
database,
2024-01-28 12:27:13 -06:00
} = flecks.get('@flecks/db');
2022-03-02 04:27:53 -06:00
let environment = {
app: {
host: 'sequelize',
},
};
2022-02-25 04:58:08 -06:00
let image;
let mount;
let ports = {};
2022-02-25 04:58:08 -06:00
switch (dialect) {
case 'mysql': {
2022-03-02 04:04:50 -06:00
environment = {
2022-03-02 04:27:53 -06:00
...environment,
2022-03-02 04:04:50 -06:00
sequelize: {
MYSQL_USER: username,
MYSQL_DATABASE: database,
MYSQL_ROOT_PASSWORD: password,
},
};
2022-02-25 04:58:08 -06:00
image = 'mysql';
mount = '/var/lib/mysql';
2022-03-02 04:04:50 -06:00
ports = {[port || 3306]: 3306};
2022-02-25 04:58:08 -06:00
break;
}
case 'postgres': {
2022-03-02 04:04:50 -06:00
environment = {
2022-03-02 04:27:53 -06:00
...environment,
2022-03-02 04:04:50 -06:00
sequelize: {
POSTGRES_USER: username,
POSTGRES_DB: database,
POSTGRES_PASSWORD: password,
},
};
2022-02-25 04:58:08 -06:00
image = 'postgres';
mount = '/var/lib/postgresql/data';
2022-03-02 04:04:50 -06:00
ports = {[port || 5432]: 5432};
2022-02-25 04:58:08 -06:00
break;
}
default:
}
if (!image) {
return {};
}
return {
sequelize: {
2022-03-02 04:04:50 -06:00
environment,
2022-02-25 04:58:08 -06:00
image,
mount,
ports,
2022-02-25 04:58:08 -06:00
},
};
};