Hallo, hat jemand vielleicht eine Idee, was hier schiefläuft?
Ich möchte einen LAMP-Stack in genau einem Docker-Container starten.
Irgendwo habe ich gelsen, MySQL sei dafür nicht ausgelegt gewesen, und man soll mind. zwei Container wählen, aber mit einem Trick konnte ich auch das lösen.
Das Problem ist nun, dass einfach nur listen();
angezeigt wird, wenn man die Website aufruft.
Hier ist mein Setup:
docker-compose.yml
flarum-dockerfile/
├── 000-default.conf
├── Dockerfile
└── script_start_flarum.sh
Dockerfile:
FROM ubuntu:jammy
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN apt update && apt upgrade -y
RUN apt install mysql-server apache2 php-curl php-xml php-gd php-json php-mbstring php-db php-tokenizer php-zip php-mysql composer git net-tools nano -y
ENV TZ=Europe/Berlin
COPY ./000-default.conf /etc/apache2/sites-available/000-default.conf
COPY ./script_start_flarum.sh /root/
ENTRYPOINT ["sh", "/root/script_start_flarum.sh"]
script_start_flarum.sh:
#!/bin/sh
mkdir -p /var/www/html/flarum/
if [ -z "$(ls -A /var/www/html/flarum/)" ]; then
echo "Empty flarum dir, init ..."
cd /var/www/html/flarum/ || exit
composer create-project flarum/flarum .
composer install
chown -Rv www-data:www-data /var/www/html/flarum/
chmod -Rv 755 /var/www/html/flarum/
mysqld --initialize-insecure=ON
sleep 5s
mysqld &
sleep 5s
# PASSWDDB="$(openssl rand -base64 12)"
PASSWDDB="AY2PHMHxsEUnN"
MAINDB="flarum"
mysql -uroot -e "CREATE DATABASE ${MAINDB} /*\!40100 DEFAULT CHARACTER SET utf8 */;"
mysql -uroot -e "CREATE USER ${MAINDB}@localhost IDENTIFIED BY '${PASSWDDB}';"
mysql -uroot -e "GRANT ALL PRIVILEGES ON ${MAINDB}.* TO '${MAINDB}'@'localhost';"
mysql -uroot -e "FLUSH PRIVILEGES;"
else
echo "Not empty flarum dir"
cd /var/www/html/flarum/ || exit
composer update
mysqld &
sleep 5s
fi
a2ensite 000-default
a2enmod rewrite
apachectl -D FOREGROUND
000-default.conf:
<VirtualHost *:80>
DocumentRoot /var/www/html/flarum/public/
# ServerName localhost
DirectoryIndex index.php
<Directory /var/www/html/flarum/public/>
Options +FollowSymLinks
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/flarum-error.log
CustomLog ${APACHE_LOG_DIR}/flarum-access.log combined
</VirtualHost>
Teil der docker-compose.yml (Ausschnitt):
flarum:
build: ./flarum-dockerfile
volumes:
- ./flarum-dockerfile/mysql-data/:/var/lib/mysql/
- ./flarum-dockerfile/flarum-data/:/var/www/html/flarum/
labels:
- "traefik.enable=true"
- "traefik.http.routers.flarum.rule=Host(`... ... ...`)"
- "traefik.http.services.flarum.loadbalancer.server.port=80"
- "traefik.http.routers.flarum.entrypoints=websecure"
- "traefik.http.routers.flarum.tls.certresolver=myresolver"
Thx für Hilfe.