-
Notifications
You must be signed in to change notification settings - Fork 15
/
docker-compose.yml
118 lines (109 loc) · 2.97 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
version: '3'
# Env variables are used in the image tag attributes because of the CI
# which runs different versions
services:
mysql:
image: mysql:${MYSQL_VERSION:-8}
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: Password12!
MYSQL_DATABASE: sqlectron
volumes:
- ./spec/databases/mysql/schema:/docker-entrypoint-initdb.d
mariadb:
image: mariadb:${MARIADB_VERSION:-10.5}
ports:
- 3307:3306
environment:
MYSQL_ROOT_PASSWORD: Password12!
MYSQL_DATABASE: sqlectron
volumes:
- ./spec/databases/mysql/schema:/docker-entrypoint-initdb.d
postgresql:
image: postgres:${POSTGRES_VERSION:-13}
ports:
- 5432:5432
environment:
POSTGRES_PASSWORD: Password12!
POSTGRES_DB: sqlectron
volumes:
- ./spec/databases/postgresql/schema:/docker-entrypoint-initdb.d
redshift:
image: foundryai/postgres8:${REDSHIFT_VERSION:-redshift}
ports:
- 5433:5432
environment:
POSTGRES_PASSWORD: Password12!
POSTGRES_DATABASE: sqlectron
volumes:
- ./spec/databases/redshift/schema:/docker-entrypoint-initdb.d
cassandra:
image: cassandra:${CASSANDRA_VERSION:-3}
environment:
JVM_OPTS: -Xms128m -Xmx512m
ports:
- 9042:9042
volumes:
- ./spec/databases/cassandra/schema:/docker-entrypoint-initdb.d
sqlserver:
image: mcr.microsoft.com/mssql/server:${SQLSERVER_VERSION:-2017-latest}
ports:
- 1433:1433
environment:
ACCEPT_EULA: Y
SA_PASSWORD: Password12!
MSSQL_COLLATION: ${MSSQL_COLLATION:-Latin1_General_CI_AS}
volumes:
- ./spec/databases/sqlserver/schema:/docker-entrypoint-initdb.d
openssh-server:
image: ghcr.io/linuxserver/openssh-server
environment:
DOCKER_MODS: linuxserver/mods:openssh-server-ssh-tunnel
PASSWORD_ACCESS: 'true'
USER_NAME: sqlectron
USER_PASSWORD: password
PUBLIC_KEY_DIR: /ssh_files/pub
ports:
- 2222:2222
restart: unless-stopped
volumes:
- ./spec/ssh_files:/ssh_files
# The ci_setup is used by the CI setup to bring up all the dependencies.
# It also waits a few seconds to let all dependencies to be ready.
ci_setup:
image: busybox
command: sleep 10
depends_on:
- mysql
- mariadb
- postgresql
- redshift
- cassandra
- sqlserver
- openssh-server
test:
image: node:${NODE_VERSION:-14}
command: npm test
working_dir: /usr/src/app
environment:
DB_ADAPTERS: mysql,postgresql,cassandra
MYSQL_ENV_MYSQL_USER: root
MYSQL_ENV_MYSQL_PASSWORD: password
MYSQL_HOST: mysql
MARIADB_HOST: mariadb
POSTGRES_HOST: postgresql
CASSANDRA_HOST: cassandra
REDSHIFT_HOST: redshift
SSH_HOST: openssh-server
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
depends_on:
- mysql
- mariadb
- postgresql
- redshift
- cassandra
- sqlserver
- openssh-server