Open pathros opened 3 years ago
Hey,
I just tested the Alpine Image with the docker-compose Files provided in the repository, both with MySQL 5.7 and MySQL 8. No issues so far:
docker-compose -f docker-compose.fpm.alpine.yml up --build
Can you provide details on how you start/run the Container? Maybe use the DEBUG flags to get more information.
Cheers, Markus
Hey, Markus.
version: "3.0"
services:
limesurvey:
build:
context: 5.0/fpm-alpine/
dockerfile: Dockerfile
volumes:
# Hint: This is just an example, change /tmp to something persistent
#- /tmp/upload/surveys:/var/www/html/upload/surveys
- ./data/upload/surveys:/var/www/html/upload/surveys
- lime:/var/www/html
links:
- lime-db
depends_on:
- lime-db
environment:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
lime-web:
image: nginx:alpine
links:
- limesurvey
ports:
- "8080:80"
volumes:
- ./examples/nginx.conf:/etc/nginx/nginx.conf:ro
- lime:/var/www/html
environment:
- VIRTUAL_HOST=www.domain.com
- LETSENCRYPT_HOST=domain.com
- LETSENCRYPT_EMAIL=mail@gmd.mx
lime-db:
image: mysql:5.7 #also tried 8
environment:
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
volumes:
lime:
networks:
default:
external:
name: webproxy
Indeed, I am executing it like that:
$ docker-compose -f docker-compose.fpm.alpine.yml up --build
This is strange. I still get errors for MySQL 5.7
lime-db_1 | 2021-06-09 15:44:16+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.34-1debian10 started.
lime-db_1 | 2021-06-09 15:44:16+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
lime-db_1 | 2021-06-09 15:44:16+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 5.7.34-1debian10 started.
lime-web_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
lime-web_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
lime-db_1 | 2021-06-09T15:44:16.608657Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
lime-db_1 | 2021-06-09T15:44:16.609722Z 0 [Note] mysqld (mysqld 5.7.34) starting as process 1 ...
lime-db_1 | 2021-06-09T15:44:16.611939Z 0 [Note] InnoDB: PUNCH HOLE support available
lime-db_1 | 2021-06-09T15:44:16.611950Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
lime-db_1 | 2021-06-09T15:44:16.611953Z 0 [Note] InnoDB: Uses event mutexes
lime-db_1 | 2021-06-09T15:44:16.611956Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
lime-db_1 | 2021-06-09T15:44:16.611959Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
lime-db_1 | 2021-06-09T15:44:16.611963Z 0 [Note] InnoDB: Using Linux native AIO
lime-db_1 | 2021-06-09T15:44:16.612158Z 0 [Note] InnoDB: Number of pools: 1
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
lime-db_1 | 2021-06-09T15:44:16.612259Z 0 [Note] InnoDB: Using CPU crc32 instructions
lime-db_1 | 2021-06-09T15:44:16.613342Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
lime-web_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
lime-db_1 | 2021-06-09T15:44:16.620850Z 0 [Note] InnoDB: Completed initialization of buffer pool
lime-web_1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
lime-web_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
lime-db_1 | 2021-06-09T15:44:16.622350Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
lime-db_1 | 2021-06-09T15:44:16.634453Z 0 [ERROR] [FATAL] InnoDB: Table flags are 0 in the data dictionary but the flags in file ./ibdata1 are 0x4800!
lime-db_1 | 2021-06-09 15:44:16 0x7f6c75389740 InnoDB: Assertion failure in thread 140103799838528 in file ut0ut.cc line 921
lime-db_1 | InnoDB: We intentionally generate a memory trap.
lime-db_1 | InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
lime-db_1 | InnoDB: If you get repeated assertion failures or crashes, even
lime-db_1 | InnoDB: immediately after the mysqld startup, there may be
lime-db_1 | InnoDB: corruption in the InnoDB tablespace. Please refer to
lime-db_1 | InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html
lime-db_1 | InnoDB: about forcing recovery.
lime-db_1 | 15:44:16 UTC - mysqld got signal 6 ;
lime-db_1 | This could be because you hit a bug. It is also possible that this binary
lime-db_1 | or one of the libraries it was linked against is corrupt, improperly built,
lime-db_1 | or misconfigured. This error can also be caused by malfunctioning hardware.
lime-db_1 | Attempting to collect some information that could help diagnose the problem.
lime-db_1 | As this is a crash and something is definitely wrong, the information
lime-db_1 | collection process might fail.
lime-db_1 |
lime-db_1 | key_buffer_size=8388608
lime-db_1 | read_buffer_size=131072
lime-db_1 | max_used_connections=0
lime-db_1 | max_threads=151
lime-db_1 | thread_count=0
lime-db_1 | connection_count=0
lime-db_1 | It is possible that mysqld could use up to
lime-db_1 | key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68197 K bytes of memory
lime-db_1 | Hope that's ok; if not, decrease some variables in the equation.
lime-db_1 |
lime-db_1 | Thread pointer: 0x0
lime-db_1 | Attempting backtrace. You can use the following information to find out
lime-db_1 | where mysqld died. If you see no messages after this, something went
lime-db_1 | terribly wrong...
lime-db_1 | stack_bottom = 0 thread_stack 0x40000
lime-db_1 | mysqld(my_print_stacktrace+0x2c)[0x55af4acb84fc]
lime-db_1 | mysqld(handle_fatal_signal+0x501)[0x55af4a5d5ff1]
lime-db_1 | /lib/x86_64-linux-gnu/libpthread.so.0(+0x12730)[0x7f6c758ea730]
lime-db_1 | /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x10b)[0x7f6c753c57bb]
lime-db_1 | /lib/x86_64-linux-gnu/libc.so.6(abort+0x121)[0x7f6c753b0535]
lime-db_1 | mysqld(+0x6c1f13)[0x55af4a59cf13]
lime-db_1 | mysqld(+0x6c22f1)[0x55af4a59d2f1]
lime-db_1 | mysqld(+0x11ab32c)[0x55af4b08632c]
lime-db_1 | mysqld(+0x11ab95e)[0x55af4b08695e]
lime-db_1 | mysqld(_Z6fil_ioRK9IORequestbRK9page_id_tRK11page_size_tmmPvS8_+0x312)[0x55af4b08e462]
lime-db_1 | mysqld(+0x116bce8)[0x55af4b046ce8]
lime-db_1 | mysqld(_Z13buf_read_pageRK9page_id_tRK11page_size_t+0x31)[0x55af4b047311]
lime-db_1 | mysqld(_Z16buf_page_get_genRK9page_id_tRK11page_size_tmP11buf_block_tmPKcmP5mtr_tb+0x409)[0x55af4b01b249]
lime-db_1 | mysqld(_Z31trx_rseg_get_n_undo_tablespacesPm+0x13e)[0x55af4afb80de]
lime-db_1 | mysqld(+0x10aed87)[0x55af4af89d87]
lime-db_1 | mysqld(_Z34innobase_start_or_create_for_mysqlv+0x2f67)[0x55af4af8d947]
lime-db_1 | mysqld(+0xf85080)[0x55af4ae60080]
lime-db_1 | mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x55)[0x55af4a627a45]
lime-db_1 | mysqld(+0xbd9326)[0x55af4aab4326]
lime-db_1 | mysqld(_Z40plugin_register_builtin_and_init_core_sePiPPc+0x1dc)[0x55af4aab61fc]
lime-db_1 | mysqld(+0x6f580e)[0x55af4a5d080e]
lime-db_1 | mysqld(_Z11mysqld_mainiPPc+0x758)[0x55af4a5d1c78]
lime-db_1 | /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xeb)[0x7f6c753b209b]
lime-db_1 | mysqld(_start+0x2a)[0x55af4a5c6cba]
lime-db_1 | The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains
lime-db_1 | information that should help you find out what is causing the crash.
docker-limesurvey_lime-db_1 exited with code 2
limesurvey_1 | nc: getaddrinfo: Try again
limesurvey_1 | Info: Waiting for database connection...
limesurvey_1 | nc: getaddrinfo: Try again
limesurvey_1 | Info: Waiting for database connection...
Successfully tagged docker-limesurvey_limesurvey:latest
Recreating docker-limesurvey_lime-db_1 ... done
Recreating docker-limesurvey_limesurvey_1 ... done
Recreating docker-limesurvey_lime-web_1 ... done
Attaching to docker-limesurvey_lime-db_1, docker-limesurvey_limesurvey_1, docker-limesurvey_lime-web_1
lime-db_1 | 2021-06-09 15:53:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.
lime-db_1 | 2021-06-09 15:53:33+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
lime-db_1 | 2021-06-09 15:53:33+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.25-1debian10 started.
lime-db_1 | 2021-06-09T15:53:33.529949Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.25) starting as process 1
lime-db_1 | 2021-06-09T15:53:33.899881Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
limesurvey_1 | Connection to lime-db 3306 port [tcp/mysql] succeeded!
lime-db_1 | 2021-06-09T15:53:36.733684Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
lime-web_1 | /docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
lime-web_1 | /docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
lime-db_1 | 2021-06-09T15:53:37.178211Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Bind-address: '::' port: 33060, socket: /var/run/mysqld/mysqlx.sock
lime-web_1 | 10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
limesurvey_1 | Info: config.php already provisioned
lime-web_1 | 10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
limesurvey_1 | Info: security.php already provisioned
limesurvey_1 | Info: Check if database already provisioned. Nevermind the Stack trace.
lime-db_1 | 2021-06-09T15:53:37.584750Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
limesurvey_1 | CException: DataBase version are not found, seems LimeSurvey are not installed. in /var/www/html/application/commands/UpdateDbCommand.php:36
limesurvey_1 | Stack trace:
limesurvey_1 | #0 /var/www/html/framework/console/CConsoleCommandRunner.php(71): UpdateDBCommand->run(Array)
limesurvey_1 | #1 /var/www/html/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run(Array)
limesurvey_1 | #2 /var/www/html/framework/base/CApplication.php(185): CConsoleApplication->processRequest()
limesurvey_1 | #3 /var/www/html/application/commands/console.php(69): CApplication->run()
limesurvey_1 | #4 {main}
limesurvey_1 | Running console.php install
lime-db_1 | 2021-06-09T15:53:37.585879Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
lime-db_1 | 2021-06-09T15:53:37.631166Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/var/run/mysqld' in the path is accessible to all OS users. Consider choosing a different directory.
limesurvey_1 | CException: Invalid access data. Check your config.php db access data in /var/www/html/application/commands/InstallCommand.php:115
limesurvey_1 | Stack trace:
limesurvey_1 | #0 /var/www/html/application/commands/InstallCommand.php(50): InstallCommand->createDatabase()
limesurvey_1 | #1 /var/www/html/framework/console/CConsoleCommandRunner.php(71): InstallCommand->run(Array)
limesurvey_1 | #2 /var/www/html/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run(Array)
limesurvey_1 | #3 /var/www/html/framework/base/CApplication.php(185): CConsoleApplication->processRequest()
limesurvey_1 | #4 /var/www/html/application/commands/console.php(69): CApplication->run()
limesurvey_1 | #5 {main}[09-Jun-2021 15:53:37] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
limesurvey_1 | [09-Jun-2021 15:53:37] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root
limesurvey_1 | [09-Jun-2021 15:53:37] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
limesurvey_1 | [09-Jun-2021 15:53:37] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
limesurvey_1 | [09-Jun-2021 15:53:37] NOTICE: fpm is running, pid 1
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
lime-db_1 | 2021-06-09T15:53:37.677548Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.25' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL.
limesurvey_1 | [09-Jun-2021 15:53:37] NOTICE: ready to handle connections
lime-web_1 | /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
lime-web_1 | /docker-entrypoint.sh: Configuration complete; ready for start up
And I get in the web browser the following message:
Internal Server Error CDbConnection failed to open the DB connection.
An internal error occurred while the Web server was processing your request. Please contact the webmaster to report this problem.
I've used all the default config as possible.
What am I missing? How do I make it work?
Wow, those log message are truly horrifying:
lime-db_1 | Hope that's ok; if not, decrease some variables in the equation. lime-db_1 | Attempting backtrace. You can use the following information to find out lime-db_1 | where mysqld died. If you see no messages after this, something went lime-db_1 | terribly wrong...
Anyway, this doesn't seem Limesurvey related, rather MySQL being very confused.
I'm wondering if you are using the same data volume for MySQL 5.7 and 8.0 which could cause this (make sure the container is properly deleted in between).
Also, please make sure to fetch the latest version from DockerHub: docker image pull mysql:5.7
Thanks @jacksgt Now it works! Following your comments, I pruned the volumes and now it works with MySQL 5.7.
However, how do I find the volumes?
Because if I $ ls -lah
into the directories, they don't seem to exist somewhere.
Hi, you can use docker volume
for that.
$ docker volume ls
DRIVER VOLUME NAME
local 25e3a074b
$ docker volume inspect 25e3a074b
Looks like, whenever I change something in the docker-compose.fpm.alpine.yml file, I need to restart everything, including removing the volumes. Otherwise, I get the following error message:
Internal Server Error CDbConnection failed to open the DB connection.
I first tried docker system prune
but it's kinda painful.
When I execute
docker-compose down -v
The container lime web remains as orphan. So I always have to execute:
sudo docker-compose down -v --remove-orphans
So that
Removing orphan container "docker-limesurvey_lime-web_1"
And then I have to remove manually the volume:
$ docker volume ls
DRIVER VOLUME NAME
local 25e3a074b
$ docker volume inspect 25e3a074b
$ docker volume rm docker-limesurvey_lime
Is there a more confortable way to modify the docker-compose.yml
files without having to remove explicitely the orphans and remove the dangling volumes?
I can't make it work if I change the database password right at the docker-compose.yml file. It feels as though the database password is indeed harcoded as "secret"???
lime-db_1 | 2021-06-16T18:06:41.414498Z 4 [Note] Access denied for user 'limesurvey'@'xxx.xxx.xx.x' (using password: YES)
I mean, it looks like it only works with the default credentials:
- "DB_HOST=lime-db"
- "DB_PASSWORD=secret"
- "ADMIN_PASSWORD=foobar"
- "MYSQL_USER=limesurvey"
- "MYSQL_DATABASE=limesurvey"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
Should you change those credentials, it simply doesn't work and returns
Internal Server Error CDbConnection failed to open the DB connection.
If so, where can I then change the mysql password?
I have run just like that, without moving anything but the server name in nginx, using the fpm-alpine configuration,
$ docker-compose -f docker-compose.fpm.alpine.yml up --build
for Limesurvey 5.0.6 and now I get the following errors:
lime-db_1 | 2021-07-02T23:40:32.596004Z 0 [Note] Event Scheduler: Loaded 0 events lime-db_1 | 2021-07-02T23:40:32.597100Z 0 [Note] mysqld: ready for connections. lime-db_1 | Version: '5.7.34' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server (GPL) limesurvey_1 | Connection to lime-db 3306 port [tcp/mysql] succeeded! limesurvey_1 | Info: Generating config.php limesurvey_1 | Info: Using MySQL configuration limesurvey_1 | Info: Using TCP connection limesurvey_1 | Info: Setting PublicURL lime-db_1 | 2021-07-02T23:40:33.679357Z 2 [Note] Got an error reading communication packets limesurvey_1 | /var/www/html/entrypoint.sh: line 78: application/config/config.php: No such file or directory limesurvey_1 | Info: Creating security.php limesurvey_1 | Warning: No encryption keys were provided limesurvey_1 | Warning: A security.php config will be created by the application limesurvey_1 | Warning: THIS FILE NEEDS TO BE PERSISTENT limesurvey_1 | Info: Check if database already provisioned. Nevermind the Stack trace. limesurvey_1 | Could not open input file: application/commands/console.php limesurvey_1 | limesurvey_1 | Running console.php install limesurvey_1 | Could not open input file: application/commands/console.php limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: fpm is running, pid 1 limesurvey_1 | [02-Jul-2021 23:40:34] NOTICE: ready to handle connections lime-web_1 | 2021/07/02 23:40:52 [error] 32#32: *1 rewrite or internal redirection cycle while internally redirecting to "index.php", client: 172.x.x.x, server: myhttpsdomain.com, request: "GET / HTTP/1.1", host: "myhttpsdomain.com" lime-web_1 | 172.x.x.x - - [02/Jul/2021:23:40:52 +0000] "GET / HTTP/1.1" 500 177 "-" "Agent data ... " lime-web_1
And in the web browser I get :
500 Internal Server Error
I've spent lots of hours and I just simply can't understand what going on is.
How can I solve it? Can anyone out there shed some light?
If I use MySQL 5.7 image:
If I use MySQL 8 image:
And in the web browser I see:
Can anyone shed some light on how to solve this?
I am using docker 20.10.2 on Ubuntu server 20.04.2