Skip to content

Commit

Permalink
#282 Savepoint
Browse files Browse the repository at this point in the history
  • Loading branch information
docktermj committed Mar 3, 2025
1 parent a3a816e commit 5435a0d
Show file tree
Hide file tree
Showing 4 changed files with 339 additions and 16 deletions.
112 changes: 112 additions & 0 deletions docker-compose.postgresql.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
version: "3"

services:

# makefile makes a metadata file for pgadmin.

makefile:
container_name: senzing-makefile
command:
- sh
- -c
- mkdir /output/postgres_postgres.com; echo $${FILE_CONTENTS} > /output/postgres_postgres.com/servers.json
environment:
FILE_CONTENTS: >-
{
"Servers": {
"1": {
"Name": "senzing",
"Group": "Servers",
"Host": "senzing-postgres",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "postgres",
"UseSSHTunnel": 0,
"TunnelPort": "22",
"TunnelAuthentication": 0,
"KerberosAuthentication": false,
"ConnectionParameters": {
"sslmode": "prefer",
"connect_timeout": 10,
"sslcert": "<STORAGE_DIR>/.postgresql/postgresql.crt",
"sslkey": "<STORAGE_DIR>/.postgresql/postgresql.key"
},
"Tags": []
}
}
}
image: busybox
networks:
- senzing
read_only: true
user: ${SENZING_UID:-1001}:${SENZING_GID:-1001}
volumes:
- /tmp:/output

postgres:
container_name: senzing-postgres
environment:
# See https://github.com/bitnami/bitnami-docker-postgresql#configuration
POSTGRESQL_DATABASE: G2
POSTGRESQL_PASSWORD: senzing
POSTGRESQL_POSTGRES_PASSWORD: postgres
POSTGRESQL_USERNAME: senzing
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USERNAME:-postgres}"
]
interval: 10s
timeout: 5s
retries: 5
image: bitnami/postgresql
networks:
- senzing
ports:
- 5432:5432
restart: always

pgadmin:
container_name: senzing-pgadmin
depends_on:
- makefile
environment:
# See https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
PGADMIN_CONFIG_DEFAULT_SERVER: '"0.0.0.0"'
PGADMIN_CONFIG_LOGIN_BANNER: |-
"<h4>Senzing demonstration</h4>
Although pgAdmin can be configured for security,
<br/>the following credentials are used for demonstration.
<ul>
<li><b>Username:</b> [email protected]</li>
<li><b>Password:</b> password</li>
</ul>"
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: password
PGADMIN_SERVER_JSON_FILE: /var/lib/pgadmin/storage/postgres_postgres.com/servers.json
image: dpage/pgadmin4
networks:
- senzing
ports:
- 9171:80
- 9172:443
restart: always
user: "${SENZING_UID:-1001}:0"
volumes:
- /tmp:/var/lib/pgadmin/storage

postgres-init:
container_name: senzing-postgres-init
depends_on:
- postgres
environment:
SENZING_TOOLS_DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/G2/?sslmode=disable"
SENZING_TOOLS_DATASOURCES: "CUSTOMERS, REFERENCE, WATCHLIST"
image: senzing/init-database
networks:
- senzing

networks:
senzing:
name: ${SENZING_DOCKER_NETWORK:-senzing}
229 changes: 224 additions & 5 deletions docker-compose.test.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,225 @@
version: '3'
version: "3"

services:
sut:
build: .
entrypoint: [""]
command: ["/app/container-test.sh"]

# makefile makes a metadata file for pgadmin.

makefile:
container_name: senzing-makefile
command:
- sh
- -c
- mkdir /output/postgres_postgres.com; echo $${FILE_CONTENTS} >> /output/postgres_postgres.com/servers.json
environment:
FILE_CONTENTS: >-
{
"Servers": {
"1": {
"Name": "senzing",
"Group": "Servers",
"Host": "senzing-postgres",
"Port": 5432,
"MaintenanceDB": "postgres",
"Username": "postgres",
"SSLMode": "prefer",
"SSLCert": "<STORAGE_DIR>/.postgresql/postgresql.crt",
"SSLKey": "<STORAGE_DIR>/.postgresql/postgresql.key",
"SSLCompression": 0,
"Timeout": 10,
"UseSSHTunnel": 0,
"TunnelPort": "22",
"TunnelAuthentication": 0
}
}
}
image: busybox:${SENZING_DOCKER_IMAGE_VERSION_BUSYBOX:-latest}
networks:
- senzing
read_only: true
user: ${SENZING_UID:-1001}:${SENZING_GID:-1001}
volumes:
- /tmp:/output

postgres:
container_name: senzing-postgres
environment:
# See https://github.com/bitnami/bitnami-docker-postgresql#configuration
POSTGRESQL_DATABASE: G2
POSTGRESQL_PASSWORD: senzing
POSTGRESQL_POSTGRES_PASSWORD: postgres
POSTGRESQL_USERNAME: senzing
healthcheck:
test:
[
"CMD-SHELL",
"pg_isready -U ${POSTGRES_USERNAME:-postgres}"
]
interval: 10s
timeout: 5s
retries: 5
image: bitnami/postgresql:${SENZING_DOCKER_IMAGE_VERSION_BITNAMI_POSTGRESQL:-latest}
networks:
- senzing
ports:
- 5432:5432
restart: always

mysql:
container_name: senzing-mysql
environment:
# See https://hub.docker.com/_/mysql/ "Environment Variables"
MYSQL_DATABASE: G2
MYSQL_PASSWORD: mysql
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: mysql
image: bitnami/mysql:${SENZING_DOCKER_IMAGE_VERSION_BITNAMI_MYSQL:-latest}
networks:
- senzing
ports:
- 3306:3306
restart: always

mssql:
container_name: senzing-mssql
environment:
# See https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-configure-environment-variables
ACCEPT_EULA: Y
MSSQL_PID: Developer
MSSQL_SA_PASSWORD: Passw0rd
image: mcr.microsoft.com/mssql/server:${SENZING_DOCKER_IMAGE_VERSION_MSSQL_SERVER:-latest}
networks:
- senzing
ports:
- 1433:1433
restart: always

mssql-create-db:
command:
- /opt/mssql-tools18/bin/sqlcmd
- -C
- -P
- Passw0rd
- -Q
- "CREATE DATABASE G2"
- -S
- senzing-mssql,1433
- -U
- sa
container_name: senzing-mssql-create-database
depends_on:
- mssql
image: mcr.microsoft.com/mssql/server:${SENZING_DOCKER_IMAGE_VERSION_MSSQL_SERVER:-latest}
networks:
- senzing
restart: on-failure

oracle:
container_name: senzing-oracle
environment:
# See https://container-registry.oracle.com/ords/ocr/ba/database/free
ORACLE_PWD: Passw0rd
image: container-registry.oracle.com/database/free:${SENZING_DOCKER_IMAGE_VERSION_ORACLE_FREE:-latest}
networks:
- senzing
ports:
- 1521:1521
restart: always
# volumes:
# - ./testdata/oracle:/opt/oracle/scripts/startup

pgadmin:
container_name: senzing-pgadmin
depends_on:
- makefile
environment:
# See https://www.pgadmin.org/docs/pgadmin4/latest/container_deployment.html
PGADMIN_CONFIG_DEFAULT_SERVER: '"0.0.0.0"'
PGADMIN_CONFIG_LOGIN_BANNER: |-
"<h4>Senzing demonstration</h4>
Although pgAdmin can be configured for security,
<br/>the following credentials are used for demonstration.
<ul>
<li><b>Username:</b> [email protected]</li>
<li><b>Password:</b> password</li>
</ul>"
PGADMIN_DEFAULT_EMAIL: [email protected]
PGADMIN_DEFAULT_PASSWORD: password
PGADMIN_SERVER_JSON_FILE: /var/lib/pgadmin/storage/postgres_postgres.com/servers.json
image: dpage/pgadmin4:${SENZING_DOCKER_IMAGE_VERSION_DPAGE_PGADMIN4:-latest}
networks:
- senzing
ports:
- 9171:80
- 9172:443
restart: always
user: "${SENZING_UID:-1001}:0"
volumes:
- /tmp:/var/lib/pgadmin/storage

phpmyadmin:
container_name: senzing-phpmyadmin
depends_on:
- mysql
environment:
DATABASE_HOST: mysql
image: bitnami/phpmyadmin:${SENZING_DOCKER_IMAGE_VERSION_BITNAMI_PHPMYADMIN:-latest}
networks:
- senzing
ports:
- 9173:8080
restart: always

adminer:
container_name: senzing-adminer
environment:
ADMINER_DEFAULT_SERVER: senzing-mssql
image: senzing/adminer:${SENZING_DOCKER_IMAGE_VERSION_ADMINER:-latest}
networks:
- senzing
ports:
- 9177:8080
restart: always

postgres-init:
container_name: senzing-postgres-init
depends_on:
- postgres
environment:
SENZING_TOOLS_DATABASE_URL: "postgresql://postgres:postgres@postgres:5432/G2/?sslmode=disable"
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INI_DATABASE:-latest}
networks:
- senzing

mysql-init:
container_name: senzing-mysql-init
depends_on:
- mysql
environment:
SENZING_TOOLS_DATABASE_URL: "mysql://mysql:mysql@mysql:3306/G2"
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INI_DATABASE:-latest}
networks:
- senzing

mssql-init:
container_name: senzing-mssql-init
depends_on:
- mssql
environment:
SENZING_TOOLS_DATABASE_URL: "mssql://sa:Passw0rd@mssql:1433/G2"
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INI_DATABASE:-latest}
networks:
- senzing

oracle-init:
container_name: senzing-oracle-init
depends_on:
- oracle
environment:
SENZING_TOOLS_DATABASE_URL: "oci://sys:Passw0rd@oracle:1521/G2"
image: senzing/init-database:${SENZING_DOCKER_IMAGE_VERSION_INI_DATABASE:-latest}
networks:
- senzing

networks:
senzing:
name: ${SENZING_DOCKER_NETWORK:-senzing}
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ require (
github.com/fsnotify/fsnotify v1.8.0 // indirect
github.com/go-logfmt/logfmt v0.6.0 // indirect
github.com/go-sql-driver/mysql v1.9.0 // indirect
github.com/godror/godror v0.46.0 // indirect
github.com/godror/godror v0.47.0 // indirect
github.com/godror/knownpb v0.2.0 // indirect
github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect
github.com/golang-sql/sqlexp v0.1.0 // indirect
Expand Down
12 changes: 2 additions & 10 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-sql-driver/mysql v1.9.0 h1:Y0zIbQXhQKmQgTp44Y1dp3wTXcn804QoTptLZT1vtvo=
github.com/go-sql-driver/mysql v1.9.0/go.mod h1:pDetrLJeA3oMujJuvXc8RJoasr589B6A9fwzD3QMrqw=
github.com/godror/godror v0.46.0 h1:/43db84UcoxlooASIsasH8TvZ7E1huwJ64yDtZ2504k=
github.com/godror/godror v0.46.0/go.mod h1:44hxVDzvFSwc+yGyRM+riCLNAY5SwZkUfLzVTh5MXCg=
github.com/godror/godror v0.47.0 h1:GZsaMOIvLqgTPPVXFIavRI4mqwNIhmcFfEZbzWeabGE=
github.com/godror/godror v0.47.0/go.mod h1:44hxVDzvFSwc+yGyRM+riCLNAY5SwZkUfLzVTh5MXCg=
github.com/godror/knownpb v0.2.0 h1:RJLntksFiKUHoUz3wCCJ8+DBjxSLYHYDNl1xRz0/gXI=
github.com/godror/knownpb v0.2.0/go.mod h1:kRahRJBwqTenpVPleymQ4k433Xz2Wuy7dOeFSuEpmkI=
github.com/golang-jwt/jwt/v5 v5.2.1 h1:OuVbFODueb089Lh128TAcimifWaLhJwVflnrgM17wHk=
Expand Down Expand Up @@ -89,14 +89,6 @@ github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6g
github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ=
github.com/senzing-garage/go-cmdhelping v0.3.2 h1:2uMgVpRygwqc/Otk95SUn40oYo1uoXsdszRkF6VZ/cc=
github.com/senzing-garage/go-cmdhelping v0.3.2/go.mod h1:9ezBnHQYwrJpTPHKd968ScvMLAIaFbxXGX50aIbF8+A=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228212639-69c257421cb4 h1:CDQPwjSgERMFHP0cJvU5dCSrdZvaRKls/MG/qlcGEJk=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228212639-69c257421cb4/go.mod h1:VBzneXja3BGmWXlO5zvmjjaOggCHw/s06U7X8ZrUBPI=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228223633-c317026b2a5e h1:sg6Zfmyu+93FeeWZS7ykgseagek37Z/SHDOaQc0Uo0s=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228223633-c317026b2a5e/go.mod h1:VBzneXja3BGmWXlO5zvmjjaOggCHw/s06U7X8ZrUBPI=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228231824-f58a343fd627 h1:VhJnx7k9O3owLLhWoAtxcDQkyEV4t2rvwmShlDepJEs=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228231824-f58a343fd627/go.mod h1:VBzneXja3BGmWXlO5zvmjjaOggCHw/s06U7X8ZrUBPI=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228234148-2688eabef300 h1:+TWowfj749nCY49TpK619AXqdeJV031h3uLS7j4naG8=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228234148-2688eabef300/go.mod h1:VBzneXja3BGmWXlO5zvmjjaOggCHw/s06U7X8ZrUBPI=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228235505-d689ef874f18 h1:9m4drIS6BLmsj6M7p8ak09Jv/EQXx0skBkqbUCTizbc=
github.com/senzing-garage/go-databasing v0.5.5-0.20250228235505-d689ef874f18/go.mod h1:VBzneXja3BGmWXlO5zvmjjaOggCHw/s06U7X8ZrUBPI=
github.com/senzing-garage/go-helpers v0.6.6 h1:5eRkD4SXJz0e+nm6okTu7vSlcaPnNd5LIFgK0mEJt84=
Expand Down

0 comments on commit 5435a0d

Please sign in to comment.