502 Bad Gateway Docker + Laravel
up vote
0
down vote
favorite
I've started to learn Docker. I have Laravel application and want to start it in docker containers. But I can't run it correctly.
I have this docker-compose.yml
:
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www
volumes_from:
- app
ports:
- 8080:80
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33061:3306"
volumes:
dbdata:
And this vhost.conf
:
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
app.dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y
libmagickwand-dev --no-install-recommends
libmcrypt-dev
cron
mysql-client
vim
&& docker-php-ext-install mcrypt pdo_mysql
web.dockerfile:
FROM nginx:1.10
ADD vhost.conf /etc/nginx/conf.d/default.conf
After run containers I have 502 Bad Gateway
and in web container I have this:
connect() failed (111: Connections refused) while connecting to upstream, client: 192.168.99.1, server: request "GET /HTTP/1.1", upstream: "fastcgi://172.19.0.3:9000", host: "192.168.99.101:8080"
.
I very bad at server settings and don't understand what happened. Will be very grateful for every help.
laravel docker nginx
add a comment |
up vote
0
down vote
favorite
I've started to learn Docker. I have Laravel application and want to start it in docker containers. But I can't run it correctly.
I have this docker-compose.yml
:
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www
volumes_from:
- app
ports:
- 8080:80
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33061:3306"
volumes:
dbdata:
And this vhost.conf
:
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
app.dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y
libmagickwand-dev --no-install-recommends
libmcrypt-dev
cron
mysql-client
vim
&& docker-php-ext-install mcrypt pdo_mysql
web.dockerfile:
FROM nginx:1.10
ADD vhost.conf /etc/nginx/conf.d/default.conf
After run containers I have 502 Bad Gateway
and in web container I have this:
connect() failed (111: Connections refused) while connecting to upstream, client: 192.168.99.1, server: request "GET /HTTP/1.1", upstream: "fastcgi://172.19.0.3:9000", host: "192.168.99.101:8080"
.
I very bad at server settings and don't understand what happened. Will be very grateful for every help.
laravel docker nginx
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.ping app
. If the containers are not able to ping each other try to include a network that the containers share.
– Ilyas Deckers
11 hours ago
I can ping fromweb
toapp
.
– Alex Lukinov
11 hours ago
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I've started to learn Docker. I have Laravel application and want to start it in docker containers. But I can't run it correctly.
I have this docker-compose.yml
:
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www
volumes_from:
- app
ports:
- 8080:80
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33061:3306"
volumes:
dbdata:
And this vhost.conf
:
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
app.dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y
libmagickwand-dev --no-install-recommends
libmcrypt-dev
cron
mysql-client
vim
&& docker-php-ext-install mcrypt pdo_mysql
web.dockerfile:
FROM nginx:1.10
ADD vhost.conf /etc/nginx/conf.d/default.conf
After run containers I have 502 Bad Gateway
and in web container I have this:
connect() failed (111: Connections refused) while connecting to upstream, client: 192.168.99.1, server: request "GET /HTTP/1.1", upstream: "fastcgi://172.19.0.3:9000", host: "192.168.99.101:8080"
.
I very bad at server settings and don't understand what happened. Will be very grateful for every help.
laravel docker nginx
I've started to learn Docker. I have Laravel application and want to start it in docker containers. But I can't run it correctly.
I have this docker-compose.yml
:
version: '2'
services:
# The Application
app:
build:
context: ./
dockerfile: app.dockerfile
working_dir: /var/www
volumes:
- ./:/var/www
environment:
- "DB_PORT=3306"
- "DB_HOST=database"
# The Web Server
web:
build:
context: ./
dockerfile: web.dockerfile
working_dir: /var/www
volumes_from:
- app
ports:
- 8080:80
# The Database
database:
image: mysql:5.6
volumes:
- dbdata:/var/lib/mysql
environment:
- "MYSQL_DATABASE=homestead"
- "MYSQL_USER=homestead"
- "MYSQL_PASSWORD=secret"
- "MYSQL_ROOT_PASSWORD=secret"
ports:
- "33061:3306"
volumes:
dbdata:
And this vhost.conf
:
server {
listen 80;
index index.php index.html;
root /var/www/public;
location / {
try_files $uri /index.php?$args;
}
location ~ .php$ {
fastcgi_split_path_info ^(.+.php)(/.+)$;
fastcgi_pass app:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
app.dockerfile:
FROM php:7.1.3-fpm
RUN apt-get update && apt-get install -y
libmagickwand-dev --no-install-recommends
libmcrypt-dev
cron
mysql-client
vim
&& docker-php-ext-install mcrypt pdo_mysql
web.dockerfile:
FROM nginx:1.10
ADD vhost.conf /etc/nginx/conf.d/default.conf
After run containers I have 502 Bad Gateway
and in web container I have this:
connect() failed (111: Connections refused) while connecting to upstream, client: 192.168.99.1, server: request "GET /HTTP/1.1", upstream: "fastcgi://172.19.0.3:9000", host: "192.168.99.101:8080"
.
I very bad at server settings and don't understand what happened. Will be very grateful for every help.
laravel docker nginx
laravel docker nginx
edited 11 hours ago
asked 12 hours ago
Alex Lukinov
523310
523310
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.ping app
. If the containers are not able to ping each other try to include a network that the containers share.
– Ilyas Deckers
11 hours ago
I can ping fromweb
toapp
.
– Alex Lukinov
11 hours ago
add a comment |
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.ping app
. If the containers are not able to ping each other try to include a network that the containers share.
– Ilyas Deckers
11 hours ago
I can ping fromweb
toapp
.
– Alex Lukinov
11 hours ago
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.
ping app
. If the containers are not able to ping each other try to include a network that the containers share.– Ilyas Deckers
11 hours ago
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.
ping app
. If the containers are not able to ping each other try to include a network that the containers share.– Ilyas Deckers
11 hours ago
I can ping from
web
to app
.– Alex Lukinov
11 hours ago
I can ping from
web
to app
.– Alex Lukinov
11 hours ago
add a comment |
1 Answer
1
active
oldest
votes
up vote
2
down vote
accepted
This is probably caused by php listening on localhost and doe not accept external connections. You should update you php.ini
to listen on 0.0.0.0.
you could test this by running the following command on your app container. And try to telnet from the web container to the app container.
/usr/bin/php -S 0.0.0.0:9000
telnet app 9000
If, for some reason that command fails try to edit your php-fpm config to set the listen address to 0.0.0.0:9000
Example:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 0.0.0.0:9000
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
2
down vote
accepted
This is probably caused by php listening on localhost and doe not accept external connections. You should update you php.ini
to listen on 0.0.0.0.
you could test this by running the following command on your app container. And try to telnet from the web container to the app container.
/usr/bin/php -S 0.0.0.0:9000
telnet app 9000
If, for some reason that command fails try to edit your php-fpm config to set the listen address to 0.0.0.0:9000
Example:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 0.0.0.0:9000
add a comment |
up vote
2
down vote
accepted
This is probably caused by php listening on localhost and doe not accept external connections. You should update you php.ini
to listen on 0.0.0.0.
you could test this by running the following command on your app container. And try to telnet from the web container to the app container.
/usr/bin/php -S 0.0.0.0:9000
telnet app 9000
If, for some reason that command fails try to edit your php-fpm config to set the listen address to 0.0.0.0:9000
Example:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 0.0.0.0:9000
add a comment |
up vote
2
down vote
accepted
up vote
2
down vote
accepted
This is probably caused by php listening on localhost and doe not accept external connections. You should update you php.ini
to listen on 0.0.0.0.
you could test this by running the following command on your app container. And try to telnet from the web container to the app container.
/usr/bin/php -S 0.0.0.0:9000
telnet app 9000
If, for some reason that command fails try to edit your php-fpm config to set the listen address to 0.0.0.0:9000
Example:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 0.0.0.0:9000
This is probably caused by php listening on localhost and doe not accept external connections. You should update you php.ini
to listen on 0.0.0.0.
you could test this by running the following command on your app container. And try to telnet from the web container to the app container.
/usr/bin/php -S 0.0.0.0:9000
telnet app 9000
If, for some reason that command fails try to edit your php-fpm config to set the listen address to 0.0.0.0:9000
Example:
; The address on which to accept FastCGI requests.
; Valid syntaxes are:
; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on
; a specific port;
; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on
; a specific port;
; 'port' - to listen on a TCP socket to all addresses
; (IPv6 and IPv4-mapped) on a specific port;
; '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 0.0.0.0:9000
answered 11 hours ago
Ilyas Deckers
539317
539317
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53203294%2f502-bad-gateway-docker-laravel%23new-answer', 'question_page');
}
);
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
I cannot tell what exactly is the issue, but your web containers cannot connect to the app containers. Can you try to ping your app container from the web container.
ping app
. If the containers are not able to ping each other try to include a network that the containers share.– Ilyas Deckers
11 hours ago
I can ping from
web
toapp
.– Alex Lukinov
11 hours ago