For monitoring vulnerabilities in dependencies used in project and keep
dependencies up-to-date with Dependabot.
And also to remember to keep the repository up to date.
This problem is caused by incorrect mounting of files.
```
/var/folders/3p/glp5vp4916n03wmjh_b0gf6m0000gn/T/tmp.ib2dU9TY
❯ git clone https://github.com/xorcare/testing-go-code-with-postgres
cd testing-go-code-with-postgres
make test-env-up test
Cloning into 'testing-go-code-with-postgres'...
remote: Enumerating objects: 124, done.
remote: Counting objects: 100% (66/66), done.
remote: Compressing objects: 100% (33/33), done.
remote: Total 124 (delta 36), reused 51 (delta 30), pack-reused 58
Receiving objects: 100% (124/124), 31.92 KiB | 4.56 MiB/s, done.
Resolving deltas: 100% (50/50), done.
[+] Building 0.0s (0/0) docker:default
[+] Running 2/0
✔ Container testing-go-code-with-postgres-postgres-1 Recreated 0.0s
✔ Container testing-go-code-with-postgres-migrate-1 Recreated 0.0s
Attaching to testing-go-code-with-postgres-migrate-1
dependency failed to start: container testing-go-code-with-postgres-postgres-1 exited (126)
make: *** [test-env-up] Error 1
```
```
/var/folders/3p/glp5vp4916n03wmjh_b0gf6m0000gn/T/tmp.ib2dU9TY/testing-go-code-with-postgres
❯ docker-compose up
[+] Building 0.0s (0/0) docker:default
[+] Running 1/0
✔ Container testing-go-code-with-postgres-postgres-1 Created 0.0s
Attaching to testing-go-code-with-postgres-migrate-1, testing-go-code-with-postgres-postgres-1
testing-go-code-with-postgres-postgres-1 | The files belonging to this database system will be owned by user "postgres".
testing-go-code-with-postgres-postgres-1 | This user must also own the server process.
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | The database cluster will be initialized with locale "en_US.utf8".
testing-go-code-with-postgres-postgres-1 | The default database encoding has accordingly been set to "UTF8".
testing-go-code-with-postgres-postgres-1 | The default text search configuration will be set to "english".
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | Data page checksums are disabled.
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | fixing permissions on existing directory /var/lib/postgresql/data ... ok
testing-go-code-with-postgres-postgres-1 | creating subdirectories ... ok
testing-go-code-with-postgres-postgres-1 | selecting dynamic shared memory implementation ... posix
testing-go-code-with-postgres-postgres-1 | selecting default max_connections ... 100
testing-go-code-with-postgres-postgres-1 | selecting default shared_buffers ... 128MB
testing-go-code-with-postgres-postgres-1 | selecting default time zone ... UTC
testing-go-code-with-postgres-postgres-1 | creating configuration files ... ok
testing-go-code-with-postgres-postgres-1 | running bootstrap script ... ok
testing-go-code-with-postgres-postgres-1 | sh: locale: not found
testing-go-code-with-postgres-postgres-1 | 2023-11-18 13:34:16.419 UTC [31] WARNING: no usable system locales were found
testing-go-code-with-postgres-postgres-1 | performing post-bootstrap initialization ... ok
testing-go-code-with-postgres-postgres-1 | syncing data to disk ... ok
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | Success. You can now start the database server using:
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | pg_ctl -D /var/lib/postgresql/data -l logfile start
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | initdb: warning: enabling "trust" authentication for local connections
testing-go-code-with-postgres-postgres-1 | initdb: hint: You can change this by editing pg_hba.conf or using the option -A, or --auth-local and --auth-host, the next time you run initdb.
testing-go-code-with-postgres-postgres-1 | waiting for server to start....2023-11-18 13:34:16.617 UTC [37] LOG: starting PostgreSQL 15.3 on aarch64-unknown-linux-musl, compiled by gcc (Alpine 12.2.1_git20220924-r10) 12.2.1 20220924, 64-bit
testing-go-code-with-postgres-postgres-1 | 2023-11-18 13:34:16.619 UTC [37] LOG: listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
testing-go-code-with-postgres-postgres-1 | 2023-11-18 13:34:16.620 UTC [40] LOG: database system was shut down at 2023-11-18 13:34:16 UTC
testing-go-code-with-postgres-postgres-1 | 2023-11-18 13:34:16.622 UTC [37] LOG: database system is ready to accept connections
testing-go-code-with-postgres-postgres-1 | done
testing-go-code-with-postgres-postgres-1 | server started
testing-go-code-with-postgres-postgres-1 |
testing-go-code-with-postgres-postgres-1 | /usr/local/bin/docker-entrypoint.sh: running /docker-entrypoint-initdb.d/docker-multiple-databases.sh
testing-go-code-with-postgres-postgres-1 | /usr/local/bin/docker-entrypoint.sh: line 170: /docker-entrypoint-initdb.d/docker-multiple-databases.sh: Is a directory
testing-go-code-with-postgres-postgres-1 exited with code 126
dependency failed to start: container testing-go-code-with-postgres-postgres-1 exited (126)
```
From July 2023 Compose V1 stopped receiving updates. It’s also no
longer available in new releases of Docker Desktop.
Compose V2, which was first released in 2020, is included with all
currently supported versions of Docker Desktop. It offers an improved
CLI experience, improved build performance with BuildKit, and continued
new-feature development.
See https://docs.docker.com/compose/migrate
See https://docs.docker.com/compose/reference
This will make it easier to debug problems, because if an error occurs,
it returns from docker-compose and interrupts the chain of commands,
for example:
make test-env-down test-env-up test
Sometimes tests terminate fatally and databases are not deleted and you
want to understand which test left garbage behind. It is also in the
future it will be possible to add the ability not to delete databases
for tests that ended with an error, and it will be necessary to
understand from which test the database.
Therefore, the generation of the database name from the name of the
test with the addition of a unique identifier so that the names do not
overlap.
Reports the maximum identifier length. It is determined as one less
than the value of NAMEDATALEN when building the server. The default
value of NAMEDATALEN is 64; therefore the default
max_identifier_length is 63 bytes, which can be less than 63
characters when using multibyte encodings.
See https://www.postgresql.org/docs/15/runtime-config-preset.html
PostgreSQL allows you to create any number of databases at a given
site. Database names must have an alphabetic first character and
are limited to 63 bytes in length. A convenient choice is to create
a database with the same name as your current user name. Many tools
assume that database name as the default, so it can save you some
typing. To create that database, simply type:
See https://www.postgresql.org/docs/15/tutorial-createdb.html
When a template database name contains invalid characters such as `-`,
the request to create a new database stops working.
To reduce this behavior, quotation marks have been added.
In the current approach, the connection logic is only triggered at the
moment of immediate need for connection.
We also get a single connection opening point.
Added an example .gitlab-ci.yml, to make a sample more informative.
Also added mirroring to gitlab to simplify repository development and
gitlab ci validation.