本地工作时如何修复多个容器的 docker 网络问题

本地工作时如何修复多个容器的 docker 网络问题

因此,我有一个带有 nginx 和 php-fpm 的基本 docker 设置,并将其部署到 AWS ECS:

nginx 的 Dockerfile

# Install nginx
FROM --platform=linux/amd64 nginx:latest

# Use custom configs
ADD nginx/conf/nginx.conf /etc/nginx/conf.d/default.conf

Nginx 配置文件

server {

    server_name localhost;

    root /usr/share/nginx/html/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass localhost:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param REQUEST_URI $request_uri;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }

}

php-fpm 的 Dockerfile

# Install nginx
FROM --platform=linux/amd64 php:8.1-fpm

# Add the files
COPY dist /usr/share/nginx/html

问题

注意:当我部署到 AWS 时,此设置运行良好。

但是当我在本地尝试这些图像时,它不起作用(网关错误),因为localhost:9000在 nginx 配置中找不到 nginx 容器的定义。由于 AWSVPC 网络模式,我必须使用 localhost。

我如何才能让它在本地工作而无需编辑太多内容?当我在本地运行容器时是否有配置选项?现在,我像这样运行它们:

docker run -p 8001:80 -d --name $DEPLOY_NAME_NGINX $DEPLOY_NAME_NGINX
docker run -d --name $DEPLOY_NAME_PHP_FPM $DEPLOY_NAME_PHP_FPM

相关内容