我使用Docker / Symfony给了一个包含PHP应用程序的repo。我能够成功运行docker-compose up --build
,看起来一切都运行成功。当我运行docker ps --all
时,我会看到我期待的所有内容
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65d7f22b6b13 nginx "nginx -g 'daemon ..." 16 minutes ago Up 7 minutes 0.0.0.0:8086->80/tcp symfony_nginx_1
4fa3c58d1eea symfony_fpm "docker-php-entryp..." 16 minutes ago Up 7 minutes 9000/tcp symfony_fpm_1
7316d40b1b8c mysql:5.5 "docker-entrypoint..." 16 minutes ago Up 7 minutes 3306/tcp symfony_mysql_1
cac0757e2f6d redis:latest "docker-entrypoint..." 16 minutes ago Up 7 minutes 6379/tcp symfony_redis_1
当我尝试在浏览器上访问localhost:8086
时,我拒绝连接。我虽然也许我的本地配置可能是janky并尝试在另一台具有相同结果的机器上。我试图通过运行docker logs 65d7f22b6b13
来获取nginx图像的日志,但它什么也没有返回。
我是否对我不正确的docker / nginx和端口转发有所了解?下面是我的docker config
version: '2'
services:
nginx:
image: nginx
ports:
- "8086:80"
volumes:
- ./:/var/www/symfony
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
links:
- fpm
fpm:
build: docker/php-fpm/
links:
- redis
- mysql
volumes:
- ./:/var/www/symfony
- ./docker/php-fpm/php-ini-overrides.ini:/usr/local/etc/php/conf.d/99-overrides.ini
mysql:
image: mysql:5.5
environment:
MYSQL_DATABASE: devdb
MYSQL_USER: devdb
MYSQL_PASSWORD: devdb
MYSQL_ROOT_PASSWORD: root
volumes:
- ./backup.sql.gz:/docker-entrypoint-initdb.d/backup.sql.gz
redis:
image: redis:latest
我在OSX 10.11.6上 - 感谢任何帮助。 Symfony和Docker对我来说都是新手。
编辑以下是我的nginx配置文件 - 我更新了listen
以使用127.0.0.1:8086
,但在我运行0.0.0.0
时仍然使用docker ps
看到它
server {
listen 127.0.0.1:80 default;
client_max_body_size 108M;
access_log /var/log/nginx/symfony.access.log;
root /var/www/symfony/web;
rewrite ^/index\.php/?(.*)$ /$1 permanent;
try_files $uri @rewriteapp;
location @rewriteapp {
rewrite ^(.*)$ /index.php/$1 last;
}
# Deny all . files
location ~ /\. {
deny all;
}
location ~ ^/index\.php(/|$) {
fastcgi_pass fpm:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_index index.php;
send_timeout 1800;
fastcgi_read_timeout 1800;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/routemap3_php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
include fastcgi_params;
}
# Statics
location /(bundles|media) {
access_log off;
expires 30d;
try_files $uri @rewriteapp;
}
}
答案 0 :(得分:0)
你的答案在你的问题中:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
65d7f22b6b13 nginx "nginx -g 'daemon ..." 16 minutes ago Up 7 minutes 0.0.0.0:8086->80/tcp symfony_nginx_1
现在,如果您仔细阅读PORTS
列,您会看到0.0.0.0:8086->80/tcp
,这意味着端口0.0.0.0
上的本地环8086
映射到端口{{1您的80
容器,以及ngnix
协议。
因此,您正确访问的网址为http://0.0.0.0:8086/
你还必须更改你的NGINX配置以适应它,它应该是:
tcp
甚至更好:
listen 0.0.0.0:80;