Исключение: ошибка cURL: «Не удалось подключиться к порту 127.0.0.1, порт 8000: соединение отклонено»
В этом приложении у меня есть и веб, и API, и, как ни странно, HTML моего веб-приложения может найти эти изображения. Следуя инструкциям, я создал довольно простую среду.
Я использую http://127.0.0.1:8000/ в качестве базового URL-адреса для доступа к моему приложению и API.
[*]Изображения находятся по адресу ROOT_DIR/public/uploads/report_templates/logo/logo-white.png [*]В Интернете это можно увидеть через http://127.0.0.1:8000/uploads/report_te ... -white.png. Что я нашел [*]Можно найти любой внешний URL-адрес, например https://www.google.pl/images/srpr/logo11w.png. [*]Если я укажу абсолютный путь вместо URL-адреса, он будет найден (не могу прибегнуть к этому сложному методу, так как это длинный отчет.) [*]с помощью curl изнутри контейнера для http://127.0.0.1:8000/uploads/report_te ... -white.png сообщает, что Failed для подключения к порту 127.0.0.1 8000: соединение отклонено
Понимаю, делаю неправильно в третьем пункте запрос в свой контейнер. Но не могу найти ничего конкретного в Интернете, и докер слишком новый, чтобы придумать что-то свое.
Я ищу правильный способ справиться с этим в докере.
.env ... APP_DEBUG=истина APP_LOG_LEVEL=отладка APP_URL=http://127.0.0.1:8000/ ... docker-compose.yml
версия: "3.7" услуги: приложение: строить: аргументы: Пользователь: Даниялнасир идентификатор пользователя: 1001 контекст: ./ файл докеров: файл докеров изображение: f-скоп имя_контейнера: f-scope-app перезапуск: если не остановлен рабочий_каталог: /var/www/ объемы: - ./:/var/www сети: f-объем: БД: изображение: MySQL:5.7 имя_контейнера: f-scope-db перезапуск: если не остановлен среда: MYSQL_DATABASE: ${DB_DATABASE} MYSQL_ROOT_PASSWORD: ${DB_PASSWORD} MYSQL_PASSWORD: ${DB_PASSWORD} # MYSQL_USER: ${DB_USERNAME} # MYSQL_ALLOW_EMPTY_PASSWORD: 1 SERVICE_TAGS: разработчик SERVICE_NAME: MySQL объемы: - dbdata1:/var/lib/mysql - ./docker-compose/mysql:/docker-entrypoint-initdb.d сети: f-объем: ipv4_адрес: 172.24.2.1 Нгинкс: изображение: nginx:alpine имя_контейнера: f-scope-nginx перезапуск: если не остановлен порты: - 8000:80 объемы: - ./:/var/www - ./public/uploads:/var/www/public/uploads - ./docker-compose/nginx:/etc/nginx/conf.d/ сети: f-объем: сети: f-объем: водитель: мост ИПАМ: драйвер: по умолчанию конфигурация: - подсеть: "172.24.2.0/16" объемы: дбданные1: Файл Docker ИЗ php:7.4-fpm # Аргументы, определенные в docker-compose.yml Пользователь ARG ARG-интерфейс # Установить системные зависимости ЗАПУСК apt-get update && apt-get install -y \ мерзавец \ локон \ libpng-dev \ libonig-dev \ libxml2-dev \ libgd-dev \ libzip-dev \ zip \ Отправить письмо \ разархивировать # Очистить кэш ВЫПОЛНИТЬ apt-get clean && rm -rf /var/lib/apt/lists/* # Установите расширения PHP ЗАПУСК docker-php-ext-configure gd --enable-gd --with-freetype --with-jpeg ЗАПУСК docker-php-ext-install pdo_mysql mbstring exif pcntl bcmath gd zip # Настраиваем путь отправки почты RUN echo "sendmail_path=/usr/sbin/sendmail -t -i" >> /usr/local/etc/php/conf.d/sendmail.ini #RUN sed -i '/#!\/bin\/sh/aservice sendmail restart' /usr/local/bin/docker-php-entrypoint #RUN sed -i '/#!\/bin\/sh/aecho "$(имя хоста -i)\t$(имя хоста) $(имя хоста).localhost" >> /etc/hosts' /usr/local/bin /docker-php-точка входа # Получить последнюю версию Composer КОПИРОВАТЬ --from=composer:latest /usr/bin/composer /usr/bin/composer # Создайте системного пользователя для запуска команд Composer и Artisan. RUN useradd -G www-data,root -u $uid -d /home/$user $user ВЫПОЛНИТЬ mkdir -p /home/$user/.composer && \ chown -R $user:$user /home/$user # Установить рабочий каталог РАБОЧИЙ ПАРАМЕТР /var/www ПОЛЬЗОВАТЕЛЬ $user HTML
Для контекста Я использую MPDF для создания PDF-файла с URL-адресами изображений (указывающими на общие папки моего приложения). Он отлично работает в моей обычной среде LAMP.
Но чтобы научиться этому, я решил создать и запустить это приложение в Docker-контейнере на своем локальном компьютере (под управлением Ubuntu). В этой среде докера все работает как надо, за исключением одного.
Мобильная версия