Traewelling / traewelling

Free check-in service to log your public transit journeys
https://traewelling.de
GNU Affero General Public License v3.0
231 stars 46 forks source link

Docker setup not working #1284

Closed pReya closed 6 months ago

pReya commented 1 year ago

I'm trying to get a development setup running, so I can maybe contribute some bug fixes here and there. However I can't get the docker setup to run properly.

  1. I've cloned the repo
  2. I've copied .env.example to .env in the project root folder
  3. I run docker compose up in the docker folder

The services never come up. It seems that redis and db are running fine, but the other services are failing during startup. Any idea why this is?

Another question: Why are there two sets of docker files? There is a compose file in the docker folder, and there is also a compose file in the root folder.

Attaching to db-rest, db-rest-redis, traewelling-app, traewelling-db, traewelling-queue, traewelling-scheduler
traewelling-db         | 2023-01-07 10:58:06+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.10.2+maria~ubu2204 started.
db-rest-redis          | 1:C 07 Jan 2023 10:58:06.517 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
db-rest-redis          | 1:C 07 Jan 2023 10:58:06.517 # Redis version=7.0.7, bits=64, commit=00000000, modified=0, pid=1, just started
db-rest-redis          | 1:C 07 Jan 2023 10:58:06.517 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
db-rest-redis          | 1:M 07 Jan 2023 10:58:06.518 * monotonic clock: POSIX clock_gettime
db-rest-redis          | 1:M 07 Jan 2023 10:58:06.519 * Running mode=standalone, port=6379.
db-rest-redis          | 1:M 07 Jan 2023 10:58:06.520 # Server initialized
db-rest-redis          | 1:M 07 Jan 2023 10:58:06.524 * Ready to accept connections
traewelling-db         | 2023-01-07 10:58:06+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
traewelling-db         | 2023-01-07 10:58:06+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.10.2+maria~ubu2204 started.
traewelling-db         | 2023-01-07 10:58:06+00:00 [Note] [Entrypoint]: Initializing database files
traewelling-scheduler  | /var/www/html/docker-entrypoint.sh: line 5: [: ==: unary operator expected
traewelling-queue      | /var/www/html/docker-entrypoint.sh: line 5: [: ==: unary operator expected
traewelling-app        | /var/www/html/docker-entrypoint.sh: line 5: [: ==: unary operator expected
traewelling-queue      | wait-for-it: waiting 15 seconds for 127.0.0.1:3306
traewelling-scheduler  | wait-for-it: waiting 15 seconds for 127.0.0.1:3306
traewelling-app        | wait-for-it: waiting 15 seconds for 127.0.0.1:3306
traewelling-db         | 
traewelling-db         | 
traewelling-db         | PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
traewelling-db         | To do so, start the server, then issue the following command:
traewelling-db         | 
traewelling-db         | '/usr/bin/mysql_secure_installation'
traewelling-db         | 
traewelling-db         | which will also give you the option of removing the test
traewelling-db         | databases and anonymous user created by default.  This is
traewelling-db         | strongly recommended for production servers.
traewelling-db         | 
traewelling-db         | See the MariaDB Knowledgebase at https://mariadb.com/kb
traewelling-db         | 
traewelling-db         | Please report any problems at https://mariadb.org/jira
traewelling-db         | 
traewelling-db         | The latest information about MariaDB is available at https://mariadb.org/.
traewelling-db         | 
traewelling-db         | Consider joining MariaDB's strong and vibrant community:
traewelling-db         | https://mariadb.org/get-involved/
traewelling-db         | 
traewelling-db         | 2023-01-07 10:58:10+00:00 [Note] [Entrypoint]: Database files initialized
traewelling-db         | 2023-01-07 10:58:10+00:00 [Note] [Entrypoint]: Starting temporary server
traewelling-db         | 2023-01-07 10:58:10+00:00 [Note] [Entrypoint]: Waiting for server startup
traewelling-db         | 2023-01-07 10:58:10 0 [Note] mariadbd (server 10.10.2-MariaDB-1:10.10.2+maria~ubu2204) starting as process 89 ...
traewelling-db         | 2023-01-07 10:58:10 0 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Number of transaction pools: 1
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions
traewelling-db         | 2023-01-07 10:58:10 0 [Note] mariadbd: O_TMPFILE is not supported on /tmp (disabling future attempts)
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Using liburing
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Initializing buffer pool, total size = 2.000GiB, chunk size = 32.000MiB
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Completed initialization of buffer pool
traewelling-db         | 2023-01-07 10:58:10 0 [Note] InnoDB: Buffered log writes (block size=512 bytes)
db-rest                | node:assert:124
db-rest                |   throw new AssertionError(obj);
db-rest                |   ^
db-rest                | 
db-rest                | AssertionError [ERR_ASSERTION]: 30s from now
db-rest                |     at Object.<anonymous> (/app/node_modules/cached-hafas-client/index.js:61:1)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
db-rest                |     at Module.load (node:internal/modules/cjs/loader:1081:32)
db-rest                |     at Module._load (node:internal/modules/cjs/loader:922:12)
db-rest                |     at Module.require (node:internal/modules/cjs/loader:1105:19)
db-rest                |     at require (node:internal/modules/cjs/helpers:103:18)
db-rest                |     at Object.<anonymous> (/app/api.js:7:19)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) {
db-rest                |   generatedMessage: false,
db-rest                |   code: 'ERR_ASSERTION',
db-rest                |   actual: 8209,
db-rest                |   expected: 8216,
db-rest                |   operator: 'strictEqual'
db-rest                | }
db-rest                | 
db-rest                | Node.js v19.3.0
db-rest exited with code 1
traewelling-db         | 2023-01-07 10:58:11 0 [Note] InnoDB: 128 rollback segments are active.
traewelling-db         | 2023-01-07 10:58:11 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
traewelling-db         | 2023-01-07 10:58:11 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
traewelling-db         | 2023-01-07 10:58:11 0 [Note] InnoDB: log sequence number 46490; transaction id 14
traewelling-db         | 2023-01-07 10:58:11 0 [Note] Plugin 'FEEDBACK' is disabled.
traewelling-db         | 2023-01-07 10:58:11 0 [Warning] 'user' entry 'root@06bc39293815' ignored in --skip-name-resolve mode.
traewelling-db         | 2023-01-07 10:58:11 0 [Warning] 'proxies_priv' entry '@% root@06bc39293815' ignored in --skip-name-resolve mode.
traewelling-db         | 2023-01-07 10:58:11 0 [Note] mariadbd: ready for connections.
traewelling-db         | Version: '10.10.2-MariaDB-1:10.10.2+maria~ubu2204'  socket: '/run/mysqld/mysqld.sock'  port: 0  mariadb.org binary distribution
traewelling-db         | 2023-01-07 10:58:11+00:00 [Note] [Entrypoint]: Temporary server started.
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Creating database traewelling
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Creating user traewelling_u
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Giving user traewelling_u access to schema traewelling
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Securing system users (equivalent to running mysql_secure_installation)
traewelling-db         | 
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Stopping temporary server
traewelling-db         | 2023-01-07 10:58:14 0 [Note] mariadbd (initiated by: unknown): Normal shutdown
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: FTS optimize thread exiting.
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Starting shutdown...
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Buffer pool(s) dump completed at 230107 10:58:14
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Removed temporary tablespace data file: "./ibtmp1"
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Shutdown completed; log sequence number 46490; transaction id 15
traewelling-db         | 2023-01-07 10:58:14 0 [Note] mariadbd: Shutdown complete
traewelling-db         | 
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: Temporary server stopped
traewelling-db         | 
traewelling-db         | 2023-01-07 10:58:14+00:00 [Note] [Entrypoint]: MariaDB init process done. Ready for start up.
traewelling-db         | 
traewelling-db         | 2023-01-07 10:58:14 0 [Note] mariadbd (server 10.10.2-MariaDB-1:10.10.2+maria~ubu2204) starting as process 1 ...
traewelling-db         | 2023-01-07 10:58:14 0 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Number of transaction pools: 1
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Using ARMv8 crc32 + pmull instructions
traewelling-db         | 2023-01-07 10:58:14 0 [Note] mariadbd: O_TMPFILE is not supported on /tmp (disabling future attempts)
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Using liburing
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Initializing buffer pool, total size = 2.000GiB, chunk size = 32.000MiB
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Completed initialization of buffer pool
traewelling-db         | 2023-01-07 10:58:14 0 [Note] InnoDB: Buffered log writes (block size=512 bytes)
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: 128 rollback segments are active.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: log sequence number 46490; transaction id 14
traewelling-db         | 2023-01-07 10:58:15 0 [Note] Plugin 'FEEDBACK' is disabled.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
traewelling-db         | 2023-01-07 10:58:15 0 [Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-seconds work.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] Server socket created on IP: '0.0.0.0'.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] Server socket created on IP: '::'.
traewelling-db         | 2023-01-07 10:58:15 0 [Note] InnoDB: Buffer pool(s) load completed at 230107 10:58:15
db-rest                | node:assert:124
db-rest                |   throw new AssertionError(obj);
db-rest                |   ^
db-rest                | 
db-rest                | AssertionError [ERR_ASSERTION]: 30s from now
db-rest                |     at Object.<anonymous> (/app/node_modules/cached-hafas-client/index.js:61:1)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
db-rest                |     at Module.load (node:internal/modules/cjs/loader:1081:32)
db-rest                |     at Module._load (node:internal/modules/cjs/loader:922:12)
db-rest                |     at Module.require (node:internal/modules/cjs/loader:1105:19)
db-rest                |     at require (node:internal/modules/cjs/helpers:103:18)
db-rest                |     at Object.<anonymous> (/app/api.js:7:19)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) {
db-rest                |   generatedMessage: false,
db-rest                |   code: 'ERR_ASSERTION',
db-rest                |   actual: 8212,
db-rest                |   expected: 8216,
db-rest                |   operator: 'strictEqual'
db-rest                | }
db-rest                | 
db-rest                | Node.js v19.3.0
traewelling-db         | 2023-01-07 10:58:15 0 [Note] mariadbd: ready for connections.
traewelling-db         | Version: '10.10.2-MariaDB-1:10.10.2+maria~ubu2204'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
db-rest exited with code 1
db-rest                | node:assert:124
db-rest                |   throw new AssertionError(obj);
db-rest                |   ^
db-rest                | 
db-rest                | AssertionError [ERR_ASSERTION]: 30s from now
db-rest                |     at Object.<anonymous> (/app/node_modules/cached-hafas-client/index.js:61:1)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
db-rest                |     at Module.load (node:internal/modules/cjs/loader:1081:32)
db-rest                |     at Module._load (node:internal/modules/cjs/loader:922:12)
db-rest                |     at Module.require (node:internal/modules/cjs/loader:1105:19)
db-rest                |     at require (node:internal/modules/cjs/helpers:103:18)
db-rest                |     at Object.<anonymous> (/app/api.js:7:19)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) {
db-rest                |   generatedMessage: false,
db-rest                |   code: 'ERR_ASSERTION',
db-rest                |   actual: 8212,
db-rest                |   expected: 8216,
db-rest                |   operator: 'strictEqual'
db-rest                | }
db-rest                | 
db-rest                | Node.js v19.3.0
db-rest exited with code 1
traewelling-queue      | wait-for-it: timeout occurred after waiting 15 seconds for 127.0.0.1:3306
traewelling-scheduler  | wait-for-it: timeout occurred after waiting 15 seconds for 127.0.0.1:3306
db-rest                | node:assert:124
db-rest                |   throw new AssertionError(obj);
db-rest                |   ^
db-rest                | 
db-rest                | AssertionError [ERR_ASSERTION]: 30s from now
db-rest                |     at Object.<anonymous> (/app/node_modules/cached-hafas-client/index.js:61:1)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
db-rest                |     at Module.load (node:internal/modules/cjs/loader:1081:32)
db-rest                |     at Module._load (node:internal/modules/cjs/loader:922:12)
db-rest                |     at Module.require (node:internal/modules/cjs/loader:1105:19)
db-rest                |     at require (node:internal/modules/cjs/helpers:103:18)
db-rest                |     at Object.<anonymous> (/app/api.js:7:19)
db-rest                |     at Module._compile (node:internal/modules/cjs/loader:1218:14)
db-rest                |     at Module._extensions..js (node:internal/modules/cjs/loader:1272:10) {
db-rest                |   generatedMessage: false,
db-rest                |   code: 'ERR_ASSERTION',
db-rest                |   actual: 8211,
db-rest                |   expected: 8216,
db-rest                |   operator: 'strictEqual'
db-rest                | }
db-rest                | 
db-rest                | Node.js v19.3.0
traewelling-app        | wait-for-it: timeout occurred after waiting 15 seconds for 127.0.0.1:3306
traewelling-app exited with code 124
traewelling-queue exited with code 0
traewelling-scheduler exited with code 0
db-rest exited with code 0
traewelling-app        | wait-for-it: waiting 15 seconds for 127.0.0.1:3306
traewelling-queue      | wait-for-it: waiting 15 seconds for 127.0.0.1:3306
jeyemwey commented 1 year ago

The services never come up. It seems that redis and db are running fine, but the other services are failing during startup. Any idea why this is?

The container that doesn't start is https://github.com/derhuerst/db-rest which is the glue-code for the Deutsche Bahn API. I'm not too sure why the container doesn't start, it works for me at least. Maybe, you can try updating the db-rest version to 6?

Another question: Why are there two sets of docker files? There is a compose file in the docker folder, and there is also a compose file in the root folder.

Maybe @MrKrisKrisu can help here. I'm only ever using the docker/docker-compose.yml.

MrKrisKrisu commented 1 year ago

Since no one actively takes care about the Docker setup I would suggest removing it from the repo. Or would someone go there and clean it up? I don't use it either and I can't give support for it... Sorry.

jeyemwey commented 1 year ago

I rely on it heavily and I know of at least two other people who use it successfully. I can clean it up when I'm back from my vacation and add some proper documentation.It's a lot simpler because we don't use the docker image or composes in production, so hopefully it won't break too much.

MrKrisKrisu commented 6 months ago

As #2074 is merged now, please try again if it works for you now and let us know if you are still having problems.