Im Setup versucht, einen Docker-Container auf OSX mit Docker - Ubuntu - Nginx - MariaDB eine Laravel App zu laufenDocker - Ubuntu - Nginx - MariaDB - Verbindung abgelehnt
Meine Docker Einstellungen sind:
version: "2"
services:
nginx:
build:
context: ./nginx
ports:
- "8080:80"
volumes:
- ./app:/var/app
fpm:
build:
context: ./fpm
volumes:
- ./app:/var/app
expose:
- "9000"
environment:
- "DB_HOST=db"
- "DB_DATABASE=laravel_db"
db:
image: mariadb
ports:
- "33061:3306"
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=laravel_db
volumes:
- ./database:/var/lib/mysql
Und die 2 docker Dateien:
FROM nginx
ADD ./default.conf /etc/nginx/conf.d/
RUN echo "daemon off;" >> /etc/nginx/nginx.conf
CMD service nginx start
FROM ubuntu:latest
RUN apt-get update && apt-get install -y software-properties-common language-pack-en-base \
&& LC_ALL=en_US.UTF-8 add-apt-repository -y ppa:ondrej/php \
&& apt-get update \
&& apt-get install -y php7.0 php7.0-fpm php7.0-mysql mcrypt php7.0-gd curl \
php7.0-curl php-redis php7.0-mbstring sendmail supervisor \
&& mkdir /run/php \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
RUN sed -i -e 's/listen = \/run\/php\/php7.0-fpm.sock/listen = 0.0.0.0:9000/g' /etc/php/7.0/fpm/pool.d/www.conf \
&& sed -i -e 's/;daemonize = yes/daemonize = no/g' /etc/php/7.0/fpm/php-fpm.conf
WORKDIR /var/app
EXPOSE 9000
CMD ["/usr/bin/supervisord"]
So weit so gut. Ich kann auf die Homepage der Laravel App als localhost: 8080 zugreifen und Sequel Pro für den Zugriff auf die MySQL DB verwenden.
Aber wenn der Zugang zum Laravel Route, die DB-Abfrage erfordert, es gibt "Connection refused"
Dann erstelle ich eine rohe PHP-Datei einen DB-Verbindungstest zu machen:
$link = mysqli_connect('127.0.0.1', 'root', 'root', 'laravel_db', 33061);
if(!$link) {
die('failed to connect to the server: ' . mysqli_connect_error());
}
Und ich Verbindung verweigert auch Fehler.
Ich versuchte mit 127.0.0.1 und localhost aber keine Hoffnung.
Versuchte es zu googeln, aber die meisten Antworten sind über Ports, die nicht veröffentlicht werden ...
Dank
Könnten Sie versuchen, '' '$ link = mysqli_connect ('db', 'root' werden, 'root', 'laravel_db', 33061); '' '? – Tuan
Nein, ich benutze genau diesen Code und ich bekomme Verbindung verweigert –