Ich habe ein sehr seltsames Problem hier, und ich bin mir nicht sicher, was ich falsch mache, muss etwas einfaches sein, aber ich kann es einfach nicht herausfinden.PHP-FPM startet nicht auf Docker mit docker-komponieren
Meine Docker-compose.yml:
mysql:
image: mysql:5.7
container_name: mysql
environment:
- MYSQL_ROOT_PASSWORD=aaa
- MYSQL_DATABASE=aaa
- MYSQL_USER=aaa
- MYSQL_PASSWORD=aaa
- MYSQL_PORT=3306
- MYSQL_HOST=localhost
php-fpm:
build: .
dockerfile: php-fpm/Dockerfile
container_name: php-fpm
volumes:
- ../app:/var/www/html
links:
- mysql
environment:
PHP_php5enmod: 'bcmath gd gmp intl mbstring mysql mysqli pcntl pdo_mysql redis zip sockets'
caddy:
build: .
dockerfile: caddy/Dockerfile
container_name: caddy
volumes:
- ../app:/var/www/html
- ./caddy/Caddyfile:/etc/Caddyfile
- ./caddy/certs:/root/.caddy
ports:
- "80:80"
- "443:443"
links:
- mysql
- php-fpm
Die Dockerfile für php-fpm:
FROM alterway/php:7.1-fpm
# update
RUN apt-get update && apt-get install -y bash zip unzip
# require the asset plugin
RUN composer global require "fxp/composer-asset-plugin:^1.3.1"
# copy the entrypoint
COPY ./php-fpm/docker-entrypoint.sh /root/docker-entrypoint.sh
# setup permissions
RUN chmod +x /root/docker-entrypoint.sh
# Clean up, try to reduce image size (much as you can on Debian..)
RUN apt-get autoremove -y \
&& apt-get clean all \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /usr/share/doc /usr/share/man /usr/share/locale
ENTRYPOINT ["/root/docker-entrypoint.sh"]
(wenn ich die ENTRYPOINT Kommentar aus dem Behälter beginnt just fine)
Und In meiner Datei docker-entrypoint.sh versuche ich nur eine Migration auszuführen:
#!/bin/bash
# run the migration
/var/www/html/yii migrate/up --interactive=0 --migrationPath=/var/www/html/vendor/twisted1919/yii2-options/migrations
Also alles, was ich tun möchte, ist ein Shell-Skript direkt nach dem Start des Containers auszuführen, aber nichts scheint zu funktionieren. Eine andere Sache, wenn ich den ENTRYPOINT in meiner Dockerfile auskommentiere, während der Container startet und die Datenbankmigration ausführt, beschwert es sich, dass es keinen gültigen mysql Treiber findet, aber wenn ich mich im Container anmelde und versuche, das auszuführen Migration manuell, dann funktioniert es gut, also vielleicht etwas mit alterway/docker-php
Ich denke, das Problem hier ist, dass MYSQL nicht bereit ist, Verbindungen zu akzeptieren, wenn der PHP-FPM-Container versucht, die Migrationen auszuführen. Ich untersuche immer noch. – Twisted1919