Skip to content

Commit 35077c5

Browse files
committed
Merge branch '7.1-gt-actions-prepare' into 7.1
2 parents 3c07b06 + 6b452a0 commit 35077c5

16 files changed

Lines changed: 268 additions & 27 deletions

File tree

Containers/ReadMe.md

Lines changed: 89 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ Say, Docker's host has name is "WILLY" and containers run with commands above, t
6969
```
7070
Data Source=WILLY\DO_SQL2017,1417;Initial Catalog=DO-Tests;User Id=dotest;Password=dotest;MultipleActiveResultSets=True;
7171
```
72+
7273
```
7374
Data Source=WILLY\DO_SQL2019,1419;Initial Catalog=DO-Tests;User Id=dotest;Password=dotest;MultipleActiveResultSets=True;
7475
```
@@ -116,6 +117,12 @@ docker buildx build -f do-postgre-14 -t do-postgres:14.0 .
116117
```console
117118
docker buildx build -f do-postgre-15 -t do-postgres:15.0 .
118119
```
120+
```console
121+
docker buildx build -f do-postgre-16 -t do-postgres:16.0 .
122+
```
123+
```console
124+
docker buildx build -f do-postgre-17 -t do-postgres:17.0 .
125+
```
119126

120127

121128
NOTE Images older than 9.6 are unable to update tzdata so some tests can fail due to specific way of working with offset on ```TIMESTAMP WITH TIMEZONE```.
@@ -155,19 +162,24 @@ docker run --name postgre-14 -e POSTGRES_PASSWORD=<your password> -e POSTGRES_HO
155162
```console
156163
docker run --name postgre-15 -e POSTGRES_PASSWORD=<your password> -e POSTGRES_HOST_AUTH_METHOD=md5 -e TZ=<timezone of host> -p 54150:5432 -d do-postgres:15.0
157164
```
158-
165+
```console
166+
docker run --name postgre-16 -e POSTGRES_PASSWORD=<your password> -e POSTGRES_HOST_AUTH_METHOD=md5 -e TZ=<timezone of host> -p 54160:5432 -d do-postgres:16.0
167+
```
168+
```console
169+
docker run --name postgre-17 -e POSTGRES_PASSWORD=<your password> -e POSTGRES_HOST_AUTH_METHOD=md5 -e TZ=<timezone of host> -p 54170:5432 -d do-postgres:17.0
170+
```
159171

160172
Here,
161173

162-
``` --name postgre-15``` - name of the container
174+
``` --name postgre-17``` - name of the container
163175

164176
```-e POSTGRES_PASSWORD=<your password>``` - superuser password, required by base image.
165177

166178
```-e POSTGRES_HOST_AUTH_METHOD=md5``` - option that controlls 'auth-method'. For test purposes 'md5' ok.
167179

168180
```-e TZ=<timezone of host>``` - Some of tests still assume that test runner and storage insance are in the same timezone. If you run and test locally on your machine, set it to host timezone, otherwise false falling tests appear.
169181

170-
```-p 54150:5432``` - host-to-container port mappings. If serveral containers are run on the same host they require to have different ports. We use following pattern - first two digits of standard port (5432) and PostgreSQL version after that e.g. 150 for 15.0, 96 for 9.6.
182+
```-p 54170:5432``` - host-to-container port mappings. If serveral containers are run on the same host they require to have different ports. We use following pattern - first two digits of standard port (5432) and PostgreSQL version after that e.g. 170 for 17.0, 96 for 9.6.
171183

172184

173185
During first run of container database structure and users will be created. By default it creates 'dotest' user, 'dotest' database with several schemas within.
@@ -193,8 +205,11 @@ HOST=WILLY;PORT=54120;DATABASE=dotest;USER ID=dotest;PASSWORD=dotest;
193205
```
194206
"HOST=WILLY;PORT=54150;DATABASE=dotest;USER ID=dotest;PASSWORD=dotest;
195207
```
208+
```
209+
"HOST=WILLY;PORT=54170;DATABASE=dotest;USER ID=dotest;PASSWORD=dotest;
210+
```
196211

197-
for containers postgre-9.0, postgre-9.6, postgre-12, postgre-15 respectively, you get the idea.
212+
for containers postgre-9.0, postgre-9.6, postgre-12, postgre-15, postgre-17 respectively, you get the idea.
198213

199214

200215
# MySQL
@@ -218,6 +233,27 @@ docker buildx build -f do-mysq-5_7 -t do-mysql:5.7 .
218233
```console
219234
docker buildx build -f do-mysq-8_0 -t do-mysql:8.0 .
220235
```
236+
```console
237+
docker buildx build -f do-mysq-8_1 -t do-mysql:8.1 .
238+
```
239+
```console
240+
docker buildx build -f do-mysq-8_2 -t do-mysql:8.2 .
241+
```
242+
```console
243+
docker buildx build -f do-mysq-8_3 -t do-mysql:8.3 .
244+
```
245+
```console
246+
docker buildx build -f do-mysq-8_4 -t do-mysql:8.4 .
247+
```
248+
```console
249+
docker buildx build -f do-mysq-9_0 -t do-mysql:9.0 .
250+
```
251+
```console
252+
docker buildx build -f do-mysq-9_1 -t do-mysql:9.1 .
253+
```
254+
```console
255+
docker buildx build -f do-mysq-9_2 -t do-mysql:9.2 .
256+
```
221257

222258

223259
### Run container
@@ -235,12 +271,33 @@ docker run --name mysql-5.7 -p 3357:3306 -e MYSQL_ROOT_PASSWORD=<your password>
235271
```console
236272
docker run --name mysql-8.0 -p 3380:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:8.0
237273
```
274+
```console
275+
docker run --name mysql-8.1 -p 3381:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:8.1
276+
```
277+
```console
278+
docker run --name mysql-8.2 -p 3382:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:8.2
279+
```
280+
```console
281+
docker run --name mysql-8.3 -p 3383:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:8.3
282+
```
283+
```console
284+
docker run --name mysql-8.4 -p 3384:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:8.4
285+
```
286+
```console
287+
docker run --name mysql-9.0 -p 3390:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:9.0
288+
```
289+
```console
290+
docker run --name mysql-9.1 -p 3391:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:9.1
291+
```
292+
```console
293+
docker run --name mysql-9.2 -p 3391:3306 -e MYSQL_ROOT_PASSWORD=<your password> -e MYSQL_DATABASE=dotest -e MYSQL_USER=dotest -e MYSQL_PASSWORD=dotest -d do-mysql:9.2
294+
```
238295

239296
Here,
240297

241-
``` --name mysql-8.0``` - name of container, can be changed, affects nothing
298+
``` --name mysql-9.2``` - name of container, can be changed, affects nothing
242299

243-
``` -p 3380:3306``` - host-to-container port mapping. We use following pattern - two first digits from default port (3306) folowed by version of MySQL e.g. 55 for MySQL 5.5, 80 for MySQL.
300+
``` -p 3391:3306``` - host-to-container port mapping. We use following pattern - two first digits from default port (3306) folowed by version of MySQL e.g. 55 for MySQL 5.5, 80 for MySQL, 91 for MySQL 9.1.
244301

245302
``` -e MYSQL_ROOT_PASSWORD=<your password>``` - root password, required by base image.
246303

@@ -271,29 +328,43 @@ Server=WILLY;Port=3357;Database=dotest;Uid=dotest;Pwd=dotest;Default Command Tim
271328
Server=WILLY;Port=3380;Database=dotest;Uid=dotest;Pwd=dotest;Default Command Timeout=120;
272329
```
273330

331+
and so on.
332+
274333

275334
# Firebird
276335

277336
Dockerfiles are located in 'firebird' folder.
278337

279338
### Build image
280339

281-
Assuming commands are executed in context of 'firebird' folder, image can be built with following commands
340+
Assuming commands are executed in context of 'firebird' folder, images can be built with following commands
282341

283342

284343
```console
285344
docker buildx build -f do-firebird-3_0 -t do-firebird:3.0 .
286345
```
346+
```console
347+
docker buildx build -f do-firebird-4_0 -t do-firebird:4.0 .
348+
```
349+
```console
350+
docker buildx build -f do-firebird-5_0 -t do-firebird:5.0 .
351+
```
287352

288353

289354
### Run container
290355

291-
Assuming the image is built like in the example above container can be run like so
356+
Assuming the images are built like in examples above containers can be run like so
292357

293358

294359
```console
295360
docker run --name firebird-3 -p 3053:3050 -e FIREBIRD_ROOT_PASSWORD=<your password> -e FIREBIRD_USER=dotest -e FIREBIRD_PASSWORD=dotest -e FIREBIRD_DATABASE=DOTEST.fdb -e FIREBIRD_DATABASE_PAGE_SIZE=8192 -d do-firebird:3.0
296361
```
362+
```console
363+
docker run --name firebird-4 -p 3054:3050 -e FIREBIRD_ROOT_PASSWORD=<your password> -e FIREBIRD_USER=dotest -e FIREBIRD_PASSWORD=dotest -e FIREBIRD_DATABASE=DOTEST.fdb -e FIREBIRD_DATABASE_PAGE_SIZE=8192 -d do-firebird:4.0
364+
```
365+
```console
366+
docker run --name firebird-5 -p 3055:3050 -e FIREBIRD_ROOT_PASSWORD=<your password> -e FIREBIRD_USER=dotest -e FIREBIRD_PASSWORD=dotest -e FIREBIRD_DATABASE=DOTEST.fdb -e FIREBIRD_DATABASE_PAGE_SIZE=8192 -d do-firebird:5.0
367+
```
297368

298369
Here,
299370

@@ -309,7 +380,7 @@ Here,
309380

310381
``` -e FIREBIRD_DATABASE_PAGE_SIZE=8192``` - page size for database.
311382

312-
```-p 3053:3050``` - host-to-container port mapping. We use following pattern - first three digits of standard port (3050) and major version of Firebird.
383+
```-p 3053:3050``` - host-to-container port mapping. We use following pattern - first three digits of standard port (3050) and major version of Firebird, e.g. 3, 4 ,5.
313384

314385
Pair ```FIREBIRD_USER``` / ```FIREBIRD_PASSWORD``` can be omitted, in this case initialization script will handle it and create 'dotest' user with 'dotest' password.
315386

@@ -318,11 +389,19 @@ More information about standard options [on official image page on docker hub](h
318389

319390
### Connect to instance in docker
320391

321-
To access an instance run in docker use host name and port you have mapped container to. If we have docker on the same "WILLY" host then connection string may look like:
392+
To access an instance run in docker use host name and port you have mapped container to. If we have docker on the same "WILLY" host then connection strings may look like:
322393

323394
```
324395
User=dotest;Password=dotest;Database=dotest;DataSource=WILLY;Port=3053;Dialect=3;Charset=UTF8;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0
325396
```
397+
```
398+
User=dotest;Password=dotest;Database=dotest;DataSource=WILLY;Port=3054;Dialect=3;Charset=UTF8;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0
399+
```
400+
```
401+
User=dotest;Password=dotest;Database=dotest;DataSource=WILLY;Port=3055;Dialect=3;Charset=UTF8;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0
402+
```
403+
404+
for containers firebird-3, firebird-4, firebird-5 respectively.
326405

327406
If you changed user/password for connections then don't forget to update it in connection string.
328407

Containers/do-sqlserver2019

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM firebirdsql/firebird:4.0.5
2+
3+
COPY init-firebird-instance.sh /docker-entrypoint-initdb.d/
4+
5+
RUN chmod +x /docker-entrypoint-initdb.d/init-firebird-instance.sh
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
FROM firebirdsql/firebird:5.0.3
2+
3+
COPY init-firebird-instance.sh /docker-entrypoint-initdb.d/
4+
5+
RUN chmod +x /docker-entrypoint-initdb.d/init-firebird-instance.sh

Containers/firebird/init-firebird-instance.sh

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@
22
set -e
33
set -u
44

5-
echo "Register aliases with default settings for databasees"
6-
7-
/opt/firebird/bin/registerDatabase.sh "DOTEST.fdb" "$FIREBIRD_DATABASE"
8-
echo "Alias DOTEST.fdb => $FIREBIRD_DATABASE registered"
95

106
/opt/firebird/bin/registerDatabase.sh "dotest" "$FIREBIRD_DATABASE"
11-
echo "Alias dotest => $FIREBIRD_DATABASE registered"
7+
echo "Register aliases with default settings for databasees"

Containers/mysql/do-mysql-8_1

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mysql:8.1.0
2+
3+
RUN echo "[mysqld]" >> /etc/mysql/conf.d/mysqld-options.cnf
4+
RUN echo "collation-server = utf8_general_ci" >> /etc/mysql/conf.d/mysqld-options.cnf
5+
RUN echo "character-set-server = utf8" >> /etc/mysql/conf.d/mysqld-options.cnf
6+
RUN echo "sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'" >> /etc/mysql/conf.d/mysqld-options.cnf
7+
RUN echo "lower_case_table_names = 1" >> /etc/mysql/conf.d/mysqld-options.cnf
8+
9+
COPY init-mysql-instance.sh /docker-entrypoint-initdb.d/
10+
COPY custom-openssl.cnf /etc/pki/tls/openssl.cnf
11+
12+
RUN chmod +x /docker-entrypoint-initdb.d/init-mysql-instance.sh

Containers/mysql/do-mysql-8_2

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mysql:8.2.0
2+
3+
RUN echo "[mysqld]" >> /etc/mysql/conf.d/mysqld-options.cnf
4+
RUN echo "collation-server = utf8_general_ci" >> /etc/mysql/conf.d/mysqld-options.cnf
5+
RUN echo "character-set-server = utf8" >> /etc/mysql/conf.d/mysqld-options.cnf
6+
RUN echo "sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'" >> /etc/mysql/conf.d/mysqld-options.cnf
7+
RUN echo "lower_case_table_names = 1" >> /etc/mysql/conf.d/mysqld-options.cnf
8+
9+
COPY init-mysql-instance.sh /docker-entrypoint-initdb.d/
10+
COPY custom-openssl.cnf /etc/pki/tls/openssl.cnf
11+
12+
RUN chmod +x /docker-entrypoint-initdb.d/init-mysql-instance.sh

Containers/mysql/do-mysql-8_3

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mysql:8.3.0
2+
3+
RUN echo "[mysqld]" >> /etc/mysql/conf.d/mysqld-options.cnf
4+
RUN echo "collation-server = utf8_general_ci" >> /etc/mysql/conf.d/mysqld-options.cnf
5+
RUN echo "character-set-server = utf8" >> /etc/mysql/conf.d/mysqld-options.cnf
6+
RUN echo "sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'" >> /etc/mysql/conf.d/mysqld-options.cnf
7+
RUN echo "lower_case_table_names = 1" >> /etc/mysql/conf.d/mysqld-options.cnf
8+
9+
COPY init-mysql-instance.sh /docker-entrypoint-initdb.d/
10+
COPY custom-openssl.cnf /etc/pki/tls/openssl.cnf
11+
12+
RUN chmod +x /docker-entrypoint-initdb.d/init-mysql-instance.sh

Containers/mysql/do-mysql-8_4

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mysql:8.4.4
2+
3+
RUN echo "[mysqld]" >> /etc/mysql/conf.d/mysqld-options.cnf
4+
RUN echo "collation-server = utf8_general_ci" >> /etc/mysql/conf.d/mysqld-options.cnf
5+
RUN echo "character-set-server = utf8" >> /etc/mysql/conf.d/mysqld-options.cnf
6+
RUN echo "sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'" >> /etc/mysql/conf.d/mysqld-options.cnf
7+
RUN echo "lower_case_table_names = 1" >> /etc/mysql/conf.d/mysqld-options.cnf
8+
9+
COPY init-mysql-instance.sh /docker-entrypoint-initdb.d/
10+
COPY custom-openssl.cnf /etc/pki/tls/openssl.cnf
11+
12+
RUN chmod +x /docker-entrypoint-initdb.d/init-mysql-instance.sh

Containers/mysql/do-mysql-9_0

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
FROM mysql:9.0.1
2+
3+
RUN echo "[mysqld]" >> /etc/mysql/conf.d/mysqld-options.cnf
4+
RUN echo "collation-server = utf8_general_ci" >> /etc/mysql/conf.d/mysqld-options.cnf
5+
RUN echo "character-set-server = utf8" >> /etc/mysql/conf.d/mysqld-options.cnf
6+
RUN echo "sql-mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'" >> /etc/mysql/conf.d/mysqld-options.cnf
7+
RUN echo "lower_case_table_names = 1" >> /etc/mysql/conf.d/mysqld-options.cnf
8+
9+
COPY init-mysql-instance.sh /docker-entrypoint-initdb.d/
10+
COPY custom-openssl.cnf /etc/pki/tls/openssl.cnf
11+
12+
RUN chmod +x /docker-entrypoint-initdb.d/init-mysql-instance.sh

0 commit comments

Comments
 (0)