phpMyAdmin作为PHP-FPM容器

phpMyAdmin作为PHP-FPM容器,php,docker,nginx,docker-compose,fpm,Php,Docker,Nginx,Docker Compose,Fpm,我有两个容器: nginx: image: nginx:1.17.4-alpine container_name: nginx ports: - '80:80' - '443:443' volumes: - './certs:/etc/nginx/certs' - './site.conf:/etc/nginx/conf.d/site.conf' pma: image: phpmyadmin/phpm

我有两个容器:

  nginx:
    image: nginx:1.17.4-alpine
    container_name: nginx
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - './certs:/etc/nginx/certs'
      - './site.conf:/etc/nginx/conf.d/site.conf'
  pma:
    image: phpmyadmin/phpmyadmin:4.9-fpm
    container_name: pma
    environment:
      - PMA_ARBITRARY=1
      - 'PMA_ABSOLUTE_URI=https://pma.local/'
在site.conf中,如何将请求“传递”到端口9000上的PhpMyAdmin?我试过:

server {
    listen 443 ssl;
    server_name pma.local;
    ssl_certificate /etc/nginx/certs/pma.local.crt;
    ssl_certificate_key /etc/nginx/certs/pma.local.key;

    location / {
        proxy_pass https://pma.local:9000;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass php:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

但这显然不起作用……你能给我指一下正确的方向吗?谢谢。

使用docker compose时,它会自动为所有容器创建一个网络,以便它们可以相互通信。每个容器都可以使用docker compose文件中的名称进行解析,文件中使用以下名称:
nginx
pma

这意味着在搜索fpm(快速CGI_通行证)时应使用
pma


您遇到的错误是什么,是nginx错误还是应用程序本身不工作,还是docker错误?可以帮助您指出您可能想问的问题,因为这更多是关于配置nginx的
 location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass pma:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }